{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Medical Image Classification Tutorial with the MedNIST Dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introduction\n",
    "\n",
    "In this tutorial, we introduce an end-to-end training and evaluation example based on the MedNIST dataset.  \n",
    "We'll go through the following steps:\n",
    "<ul>\n",
    "    <li>Create a dataset for training and testing</li>\n",
    "    <li>Use MONAI transforms to pre-process data</li>\n",
    "    <li>Use the DenseNet from MONAI for classification</li>\n",
    "    <li>Train the model with a PyTorch program</li>\n",
    "    <li>Evaluate on test dataset</li>\n",
    "</ul>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Get the dataset\n",
    "\n",
    "The MedNIST dataset was gathered from several sets from [TCIA](https://wiki.cancerimagingarchive.net/display/Public/Data+Usage+Policies+and+Restrictions), [the RSNA Bone Age Challenge](http://rsnachallenges.cloudapp.net/competitions/4), and [the NIH Chest X-ray dataset](https://cloud.google.com/healthcare/docs/resources/public-datasets/nih-chest).\n",
    "\n",
    "The dataset is kindly made available by [Dr. Bradley J. Erickson M.D., Ph.D.](https://www.mayo.edu/research/labs/radiology-informatics/overview) (Department of Radiology, Mayo Clinic)\n",
    "under the Creative Commons [CC BY-SA 4.0 license](https://creativecommons.org/licenses/by-sa/4.0/).\n",
    "If you use the MedNIST dataset, please acknowledge the source, e.g.\n",
    "\n",
    "https://github.com/Project-MONAI/MONAI/blob/master/examples/notebooks/mednist_tutorial.ipynb.\n",
    "\n",
    "The following commands download and unzip the dataset (~60MB)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!wget https://www.dropbox.com/s/5wwskxctvcxiuea/MedNIST.tar.gz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# unzip the '.tar.gz' file to the current directory\n",
    "import tarfile\n",
    "datafile = tarfile.open(\"MedNIST.tar.gz\")\n",
    "datafile.extractall()\n",
    "datafile.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import numpy as np\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from PIL import Image\n",
    "\n",
    "import torch\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "\n",
    "from monai.transforms import \\\n",
    "    Compose, LoadPNG, AddChannel, ScaleIntensity, ToTensor, RandRotate, RandFlip, RandZoom, Resize\n",
    "from monai.networks.nets import densenet121\n",
    "from monai.metrics import compute_roc_auc\n",
    "\n",
    "np.random.seed(0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Read image filenames from the dataset folders\n",
    "First of all, check the dataset files and show some statistics.  \n",
    "There are 6 folders in the dataset: Hand, AbdomenCT, CXR, ChestCT, BreastMRI, HeadCT,  \n",
    "which should be used as the labels to train our classification model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total image count: 58954\n",
      "Image dimensions: 64 x 64\n",
      "Label names: ['Hand', 'BreastMRI', 'ChestCT', 'HeadCT', 'AbdomenCT', 'CXR']\n",
      "Label counts: [10000, 8954, 10000, 10000, 10000, 10000]\n"
     ]
    }
   ],
   "source": [
    "dataDir = './MedNIST/'\n",
    "classNames = os.listdir(dataDir)\n",
    "numClass = len(classNames)\n",
    "imageFiles = [[os.path.join(dataDir, classNames[i], x) for x in os.listdir(os.path.join(dataDir, classNames[i]))]\n",
    "              for i in range(numClass)]\n",
    "numEach = [len(imageFiles[i]) for i in range(numClass)]\n",
    "imageFilesList = []\n",
    "imageClass = []\n",
    "for i in range(numClass):\n",
    "    imageFilesList.extend(imageFiles[i])\n",
    "    imageClass.extend([i] * numEach[i])\n",
    "numTotal = len(imageClass)\n",
    "imageWidth, imageHeight = Image.open(imageFilesList[0]).size\n",
    "\n",
    "print('Total image count:',numTotal)\n",
    "print(\"Image dimensions:\",imageWidth,\"x\",imageHeight)\n",
    "print(\"Label names:\",classNames)\n",
    "print(\"Label counts:\",numEach)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Randomly pick images from the dataset to visualize and check"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAikAAAI4CAYAAACvGXkgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOy9eZRtVXX/+5l1Gy7Sd14vF6RRGlHpRAVbInYQDcQQolGDCQlvqD8Tn8n4iclLfv7GM3n6XkbUxPxM7hMjNhE06oOgsUOIEhW4KEonjbQX6RFplOZy1/ujzvfseWatc+pU1amqXXXmZ4waVXX22nuvvffc66z1XXPOZaUUkiRJkiRJ2sbEYlcgSZIkSZKkRnZSkiRJkiRpJdlJSZIkSZKklWQnJUmSJEmSVpKdlCRJkiRJWkl2UpIkSZIkaSVz6qSY2avN7Bozu97MThtVpZKkjaS9J+NE2nvSBmy2eVLMbAVwLfAKYBNwCfCGUspVo6tekrSDtPdknEh7T9rCyjns+zzg+lLKDQBmdiZwPNDXiM2smNkcTtlLJqIbL0opozOemTMre1+guiXLkKVk72nryRy5p5SyW23DXDop64Fb3f+bgOcP2sHMWLNmzVAHH9QBeeKJJ/qWiZ/NtiMzlw6Q37dfp2yY4w/q0M12W9vpd1+2bNmywDWZwoztPUmWMGnvyUJyc78Nc+mkDIWZnQqcqv+3bNkyoy9R/6U1ky/2YcqOSomJ56xd36BrTkVodJ3LxSbae5IsV9LWk4VgLp2U24A93f97dD7roZSyAdgAMDExsTS/eZJkFvaeEniyhJnW3tPWk4VgLp2US4D9zGwfJo339cDvTreTV1KGURfmOqKeibIyV2aiENXKzqSOtbILea3zRYvrPit7T5IlStp70gpm3UkppWw2s/8GfA1YAXy8lHLlyGqWJC0i7T0ZJ9Lek7Yw6xDk2TAxMVFWrlw5MiVlJtuGcbKdLXN1VO13rTM97lJ2mBX9nkkpZbGjHWZMSuDJXFhK9p62nsyRS0spR9Q2zLvjrKeU0jPdMzHR5JIb5gt2kGPqKJjtcYeZZonHnqlj70zuz3JgOV1LkiRJMjsyLX6SJEmSJK1kQZUUmD6kuK0qyWIzk6mgVCGSJEmS5UAqKUmSJEmStJIFV1I8Mx3xzyTEdjZ+IjVmo0rUfEkGOfLO9RxJkiRJshxJJSVJkiRJklayqD4pbWO24c6zKdvm+5AkSZIkbSCVlCRJkiRJWkl2UpIkSZIkaSWL4jg7k6mOuYYAD+NAO0w22tlOz+S0TpIkSZLMjlRSkiRJkiRpJQuupJhZda2amaS8n0ko8qicYYdhVKsQr1q1CoDHH398yrYVK1YA8MQTTwCwcmXzCDdv3tzzmcrMdMVkv1yBZ8uWLVP2F4OeX6pJSZIkyWxIJSVJkiRJklbSmmRucWQ/27TvbRi115SIeD1SOTxSSQYpKPE4Uk/8ef1n09WttiK1FJO53ss2PIskSZJk6TKtkmJmHzezu8zsCvfZzmb2DTO7rvN7p/mtZpIsDGnvyTiR9p60HZtutGtmLwEeAj5ZSnlW57P/G7ivlPJ+MzsN2KmU8u5pT2ZWvE9KnzIzqf+0LMRofja+KF7R8L4efttTn/rU7mdPecpTAHjggQcAuPXWWwF48MEHZ1SvfnVdvXp19+/HHnts2voPo3yN+t6XUuZ9tcdR2/v81jZZziwle09bT+bIpaWUI2obplVSSinfBu4LHx8PnNH5+wzghDlVL0laQtp7Mk6kvSdtZ7Y+KWtLKbd3/r4DWNuvoJmdCpw6y/MkSRtIe0/GiaHsPW09WQjm7DhbSimDpL5SygZgAwwnCcbpg0Hhs3GfxSKe34cFq66DnFljWTnJ7rjjjt1t69evB2CrrbYCmmkeP92jaaI4feSJZXbaaXK6effdd++W+fnPfw7AnXfe2VP3QVNxowq/bjujtvckaTOD7D1tPVkIZhuCfKeZrQPo/L5rdFVKktaR9p6ME2nvSWuYrZJyDnAy8P7O77NHVqMObQ8z9kQVYRjVxF+D1A0dRyHIDz30ULeMlI/tt98egHXr1gFw//33d8sMcqKNSJGRQ+7Tnva07rZ7770XgIcffnjKOfqxzJWUebf3JGkRae9JaxgmBPmzwPeAA8xsk5mdwqTxvsLMrgNe3vk/SZY8ae/JOJH2nrSdaZWUUsob+mw6ZsR1WbJICRmUoG3NmjVAo5LUwny1f82PRftvu+22QBMyfPvtt3fLSEnR/rV66W/t/6QnPannNzQKilQbhT3PdRmCpUDaezJOpL0nbSfT4idJkiRJ0koWNS3+ciEqKPL3ANhjjz2AxodEkTM//elPu2UeeeQRoFE+pL48+uij3TLaJnVDisUOO+zQLaNoHKk08mOpJY7beuutAdhtt92A3kgiHXvTpk1Ao8wMs8CgZ5n7qSRJkiTzTCopSZIkSZK0kuykJEmSJEnSShZ8usdPEyyXaYA4reFXMVZit1122QVopl5+9rOfdcvE6Rn99iHImgLS9IwcX+VI688f61VLwqbjaX855gJss802QO+0VSSncpIkSZL5JpWUJEmSJElayYIrKW0ceddUASkNtbBiEVPMax/vYKow4uiwuvPOO3fLyJk2Hs87vN59990AbLfddgD86le/AuoKiEKIpej4FY5jmLOUlCc/+cndMkrmJsfd2j2IqfdrqfiHedb9Uu230U6SJEmShSWVlCRJkiRJWslYhyDHdPReMYgj+ZpKEtE+fl8dW8nSFEIsZQQav5WYTn/VqlXdv7VN+2mftWubBUp33XVXYHAa+1gf1VXqi0fXPMzChfH4/ti1bf3K1Mqa2VDnTpIkSZYXqaQkSZIkSdJKxlpJGUYVmcn+tePJLyRG+fgkbN73xOOTucXFB+VL4n1bvH+K38crRDqXFhaUL4pUE79fVFL8PZmJv0lNYZqO9ElJkiRJUklJkiRJkqSVZCclSZIkSZJWMu10j5ntCXwSWAsUYEMp5cNmtjNwFrA3cBNwUinl5/NX1fnHT3kITZXUwoJjOG9tjRuf2A2aaR4/TaPQYe2v5G5+ykOhy1pjR/XQ9JE/tkKOdW4/3aNzaS0h7eOddnWuhXBWHSYp3EJO/YyTvSdJ2nvSdoZRUjYDf1pKOQg4Eni7mR0EnAacV0rZDziv83+SLHXS3pNxIu09aTXTKimllNuB2zt/P2hmVwPrgeOBozvFzgAuAN49L7WcJ2Lo76DEbRrN+zLDJHz75S9/CcADDzzQcxyfzl5qiJK6Ce84q/2lbihk2Cdq09/6LUXGo2Rw+q3j+WtQOvyYpn8YZroasj6LzsOLFXK8nO09SSJp70nbmVF0j5ntDRwGXASs7Rg4wB1MyoW1fU4FTp19FZNkcUh7T8aJmdp72nqyEAzdSTGzbYEvAO8spTwQknYVM6s6DpRSNgAbOsdoVVxpTJ7miQvwPfLII0CvuhEVlJpSoPT1UkmkbnglZc899wSaRQdVLyk9/jhK8CYlpKbi+P38tfj9pZYoBNknc7v11luB4ZSUUS00qHPUFkVcjHDk5WjvSdKP2dh72nqyEAwV3WNmq5g04M+UUr7Y+fhOM1vX2b4OuGt+qpgkC0vaezJOpL0nbWaY6B4DTgeuLqX8ndt0DnAy8P7O77PnpYYLQEyPD43SsffeewONknL77bd3y8hPpBYVJKQCaH8pBjvttFO3zL777gvADTfcAMDNN988pT4610MPPQTAU5/6VADuuqtpO+T/opT3Dz74INDrtyIFRYnflErfo2MOo2DMpIzucy153Wz8X+aDcbD3JBFp70nbGWa654XAm4HLzeyyzmd/zqTxfs7MTgFuBk6anyomyYKS9p6ME2nvSasZJrrnQmDqynCTHDPa6iTJ4pL2nowTae9J2xnrtXtEbYpBDrKaFtFvTaFAM/UyKARZ2zQVo2kfTclA4wS7fv16oJnu8Q6wcri99957gd4VkoXqqKkqOeL6aSMlkdOxdT2/+MUvumX0WW3V4tmg48QQaY8Sz+m+L/a0T5IkSbL4ZFr8JEmSJElayYIrKXMJJx1VuKuQA6dG7d4BVmHAd999NwDPfvazgcbxFKaGFwu/GrGUEx1H1+BXQVYaeikMUlS8k66UFJ3zzjvvBHrT7m+//fYA3HPPPT318XXWtaqslBnV059Ln8Wkd/464rPw59JxlIJ/jz32AHqXBNC1X3755QD89Kc/JTIxMZHKCo1deeUuLrtQIy6TUGM2q1pLzasdV3WVMuaPH/eT8ifbhqlLTtTqpyUi7r///p7jegWynzJXUwn1/tcSN05XtnaOJEnmTiopSZIkSZK0kiXlkzLqpF5RQfEjIZ1LSoNGeQr9hcYnRYpD/O3RZ9dddx0ABx54YHebFv3TSLC2wJ9UH40a5ePi1Q2vYkCTbt+HO0vN0EhSvih+NKxRsM6vc3hfEqkkGrXqfvlntNdee/X8lu+NwroBrr/+egDuu+8+oHkW/roWI5lbG6nZldCz0f3zqoSelZ7roOPIBmsqSVRMhlFmas8uKnN6jzyyd9m0zuXtQu+C/Lv0Tvh66Vx6p3QvfBm9CzG5Y02BrC3aKQYtR5EkyexIJSVJkiRJklay4EqKmbVuZKxRW210pCRqipSRKuD/1ohOUTm1RQg1ElPCNik00Cgd0Rdl991375bRKE2jRo2GfWI0KScaNT7taU8DGqUGGgVHZTXi9tE9Ggn6VPn+Gjwxhb+v8yGHHNJTZ5Xx137ZZZOpGaSk1HwF2mYvC42esWzAj/jjM/HLNgjZYFRQvF3oHtfUiH7H03P1vlx6X1QPPU8fjSab03XVFpnUfrFsTc1TnYVXDp/znOcAjU+Z3k3ZHcCPfvQjoLF33d/avRzkh5MKSpKMnlRSkiRJkiRpJdlJSZIkSZKklSwpx9n5orYacnSC27RpE9CE/kIztSFJWce54447umWio54k5VtuuaVbRtMzCqkUT3nKU7p/a6pE4bwK4/VTS/vttx8At912W8+5FG4MsNtuuwGNVC/nQC+167rk5KsyXv6OoaFaA2ifffbpllFdtdKy+OY3v9n9W/dT16fr8WGkW7ZsGevwzui0Wds2aKpBthzXkYrTeR49c3/fo9OoT2woZMvR0XVQ3XUuP60Xr6d2nZpmUn1+7dd+DYCXvexl3TKyQU3TqOzatWu7Zfbff38AvvzlLwNNSgE/PdbPudaja/dOy0mSzI1UUpIkSZIkaSWLoqSMOinbbKklKRPRiVbOsTfddFP3M4UjK6xXI0s/klISt+iMJ2UGmlGdRmJSI+RMCo0aojL634+GdQ4pMLfeeivQjCahUVIU9qnfPnGcjikFRNfgHSR1f+R8qbBiv6qyknSpzlJNpNDAVKdJXcOgEeu4Mii5WEz0Vgsd1j1VIkE5VkNjc3rmUtpqjsxSGpR478Ybb+xuk81F5Uu2AFMVGNlATQ2SfdVUH703xx9/PNA4x3p71zsk+5aq5BMK6l3S/dm4cSMAV1xxxZQ6xiUeakpTkiSjI5WUJEmSJElayVj7pMTRuvfL6JeW2ysp8t3QCO7QQw8F6j4pGgnWRrpCioPChH/84x9PKaN6KNTT+24otFfn0GhYoc3QhB7ruqR8+JGq9lMoZ0yo5ZFqo5GlT3anbVJgrrzySqBXIdI23Sev1ngGqQjLHd0TPWs/etfftfTzQs/myCOPBOBFL3oRAK94xSu6ZfTcFM4r+/ILYcoe9Cy0/IIS8gF897vfBeC8884D4NprrwV61ZO4HEVNQdE1xzDgpz/96d2/Tz755J7rkVInNQead9yHW0Ov2qlzvPCFLwSmhj/7Y8b3d7HV4CRZ7kyrpJjZGjO72Mx+ZGZXmtn/7Hy+j5ldZGbXm9lZZjZ1adskWWKkvSfjRNp70naGUVIeBV5WSnnIzFYBF5rZfwDvAj5YSjnTzP4JOAX46DzWdd7xo/h+C5JphAnNnPWee+4JNNE1z3rWs7plNOKSuqIIHh9xI3VDEQgq4xOsaSQqVUS+A34xQ+2vEa6uxysgOqaO5+fmRZy31+j1Jz/5SbeMUtxr/l//61r8ZxqFyodhkCqi+76II9TW2XtU9WrbhFQKRawAHHbYYQC8733v63scKQ7aXz4k/jnILysuHviMZzyjW0bqzAknnADA+9//fgDOP//8gdcIvYnaVB9dn96pt7zlLd0yL33pS4FGyVF9/Luld0LbZP9eRdX1SIk84IADgN7oOp1D6qYSN9aWpRgUNdVCWmfvSeKZVkkpk2hxjVWdnwK8DPi3zudnACfMSw2TZAFJe0/GibT3pO0M5ThrZivM7DLgLuAbwE+B+0spGkZsAtb32fdUM9toZhtHUeEkmW/S3pNxYrb2nraeLARDOc6WUp4ADjWzHYEvAQdOs4vfdwOwAcDMWuVlFtfhqIW9Su6urZQs+ft73/se0MjVmv6BJlxT51L4p5+CURiwpkdqDqqSkuXMJ4dGvw6Opmdi+Kh3ANQ2OSuqjHdelMytqS3t78Om5YgoZ0pJ5F7q1jVfcsklANx1111Ar4NyXDepto7LQidya5u9x/Bsj+xSU3KHH344AK961au6ZZTkTMnJalNpOofsQ2X8OfWMNGWicPbaWkxyxP2bv/kbAP7xH/+xW+bTn/40MPX9qz1zvVO/9Vu/BcCxxx7bLSNHbN0DTdt4e5eTdkwS6Ke8NBWkc6qsXwVZzvGadtL0rdb9AbjqqqtYiszW3tvctifLhxmFIJdS7gfOB44CdjQzdXL2AG4bcd2SZFFJe0/GibT3pI1Mq6SY2W7A46WU+81sa+AVwAeYNOYTgTOBk4GzhzgWK1euHDhy8mWhd9Q36iRwUbEYdNyas6cUEI0s5RjqlRQlzJIzn9QE76SreshZUfdFIckAl156KdA4ocpx1qfuVnndJ40sfRipPtMKzhqp+nNJHZGyo32kAvn7se+++wKNw6xXUhQSqmRfGuH6+9wvDNzbw8TExIKpKaO0dzEoaaC21ZYeUHmFict2pFoBnHjiiUDjqCoVzCtj+lvPWk7TfgkDJTuTOigblhIIjV3JTpXkzztvq85K2Cen2ne84x3dMnrG3/jGN4Dm3fBLTsh5/Hd+53cAOOqoo4BmyQeYqnLq3vn7HEPaZUe+TEzUFo/r0bsqFUkqFTTLY3z7298GmnQF3gFe6N2qLS2wkIzS3lesWFFtJ6OyW3Ms1r2WbdTU5LgMguzOP0v9Hct6VA+V0fP2bUz8LpDqV7ObeNxanbXfoCVGakqgiCuGqz6+zv3aUl+veD/Upns71DH1PeDbgHhd8d0ZFBRRe5+GSS0xzHTPOuAMM1vBpPLyuVLKuWZ2FXCmmb0P+CFw+hDHSpK2k/aejBNp70mrsYUM9ZyYmChtUlJGhUbDBx98MAAvfvGLu9ukeOj6brjhBqBRYaBJqy9/Ao18fS9ToY+6B6985SuB3t6zRixKqKX76+fWFbYpnxL1kuVXA70jY18fhTZD8wye+cxnAs3I1/fIv/a1rwHwn//5n0CjAtVGHHH0Wuthl1Km7thiNE8vBcM/q2GUoajAaNT+rne9q1tGSoWeZy3FfPSn0vvnn4O2Rf8Xb6c6jhK+6br0PzT2pONIBfJqXrw+qQrevqSYaMSoc/lRuK5DI8+49IT/W9dXW6wxJoyLo3Fo7pWutZbMTfvFZQN++MMfdsto/0F2vnr1ah5//HG2bNmyZOzdzIqZdZ9zTREUUuK8/andiG2Wf07xOLXvg0GqZUTn8t9DIr6f+t8v+yGfvei/5esj+9VvPX8pcdCoGbIX7e/bbe0v+699B6pMzZ9MRDVjkHKl56Q2wC9t4duFfgxaqiOef8uWLZeWUo6oHSfT4idJkiRJ0koWPC2+7z3PVBFpm4IidE2KJPAJ3zSvp99Kpe/n1tUr1Zy8Fk7zPWH1vOUzoLIHHXRQt4xGEeqZ67j+vql3q3oMirjR+eWvIlXIH1MRRbo+P/+uqI/FnndfTMysmvZd91gKiEYZ3sdIdqVn9Qd/8AdAo9hB8xyiuuFHLRp96TM9Rz/3Ldvpp5b4/eM2r7xpJK1zKi2+ty/Zt/aXb4sfveq+6B7U7k9cakL3wo/iVdeojvhzxWR5McrH1z/O8/sy+kz+XjqXH3UqGigqKL5dfPzxx1vb1k1Hzd9E7UdNnYvEe19TA3S82lIQSi4pHzm1S77tij53UoG9uqHPvvjFL/bsI7UbGp8j+YHJj+v73/9+t8yFF14INM9d+7/1rW/tltHirPLj+tnPfgb0LvqqNiRGWnp/Ed0XvYP6rrjlllu6ZXTvo/3691yfxedUs0mdy6upQu+q3oOa8jWMopxKSpIkSZIkrSQ7KUmSJEmStJIlNd3TViRFa1pDDlDQhOhKttT6Pl7u1bSI5D3Jhn4dHEl3ktA03XPEEY2vkaZ55OAk6dXL8THcWfgQZDlgKTRUEreX2lVG0rYkez+FoGuMIXU1h83liplNCUOE5rprU3JCz0r7y0nWO9RJBo6htd5BTlNyckxViKwP+ZWNRCdCSeK+jOxS69no2fvPJG/LZrx96T2RNK/fsiV/PZLUdQ5fP01RKcxf0rO/P9FhVr+9LUuq1jsmqb/23sSQcf/cNP2gY+t9VBsAzfpXKjvIiXypUUrpXo+/rvj+a2rBP8toxzWHYk3HaF0qhdD76U/Zgp6T7M7bhNAz1bn8OfX3KaecAjTTRV//+te7ZdSW632Q/fz6r/96t4zWstL1qT5+CljJLnWco48+GmimfaCZ8tW7E6dePXpndQ2XX355d9vGjZPJgeXMrTKqe7wPHrX50Nxf2fogh+UYMu6PX3OmjaSSkiRJkiRJK1lQJcWPKpcTGjVIEfGOs3IclMOUesI+IZfCizWKkDOrRgXQOKTKUUplfQ84KjBy5PWqiUZp6vlqVCNHRWh6+zFM0o+8jzzyyJ5rV49Yq8NC49w1TG851m+5KG5btmzpjkCicyRMvTb/fmj0p1GcRpK1Va31PP15hUbtcuh7z3veA/SG/MbRl2zGqwk6fwz19WVUD40UpW740E05e0vp0/1RqnloQvX1bui98QkFZadf+tKXgMa50SuQsmvdD408vYO36iHl8CUveQnQLDXg70sMV/aKjJ6Lrl33UKNg/1lUZrwdzOR9WYrUHMmF1DS1ZT4w4JBDDgGa90FLL3j7k0qo5xwTt0FjE1LMZH81p/+LLroIaNQOrwLomKqX0jucddZZ3TJve9vbAPjKV74CNLbpz/X5z3++5zOlpFD9AI4//viea5et+rZd7b0cZWNbD43689znPhdo1CyfgkLJN/Wc9B3jv2sier9qakvN6V0Mk1YklZQkSZIkSVrJgvukxBHfckC9QfUiNY8OTbilFh/TfKoPidOcqlQXJT3zc/SHHnoo0Iwo1dv16obKSIGRquHDAtXzjouy+VG+Rr8aMUsZ8vXRden86klrzh0aRSguGjio16zj+PosZFr8+aCmmuj64oJ+fo5Zf2tEL+XAj1b0bDU6lDLmzyX17YorrgAaVcOHU+r+Sl3RKNXXRyMr2c6BB06uQzcofF2p7/3ie5qzl1KkOvuEb/K/0Xui0aF8XqB5BzTi1DX4BQ81upRfRC38VfdTPgA1dUrXo/ut++JVgfguSXXxzysm/BomLfhSwMxYtWpV937UEqzpWmUjUiAAXvjCFwKNTcqPKiaWhKYN1L30Ibannz6ZGFe2XlMEo39SLQGi7EXvlVREnzpCi03q2Hp3/HXpM7XNWt7Eq+06jvyu9Nu3pRdffDEA69dPLkYtPy7v7yQlUYqHQpqlSkLTFrz85S8HGv8XKSu+PrJ1+Up63zMpOXof5YfpVcCoFtbQux8VSk8qKUmSJEmStJJF8UmpLSK3lImptn3yMvVCNXpVD9r3HKV8aHQmdcL3pNW7Peyww4BmtFdLXKVRiOZ1/Vy/tmnUoB6xH2lEb3eNBL0XvUYvepaau1XvHZoefb8F3DxxW011WGpMTEywZs2a7lxs7bq1rTai1ihQozHd42c/+9ndMtEHRH5APppG5/3DP/xDAH7/938f6I26OP/884HG61+jVD+PrOcplUPPXsofNLYvHxft7+1Lc+5SiORn4keyem808pM64kdq2l9+C3q3/HFUR40KVT9/f6QKalSo5Fy11PlRKaot8KkyOldN+VpuSkophccee6yrPPj7onulJTS0aKRvT3SvFRUmFdbfO7WTel7a5p+3Ruby/ZBt+WRlqpueqRS9mm9VTHb5xje+sVtGSqJUhO985ztAb1I4tb1qd/UO+XNJRdI90DvobVRtoOojpUjROjDc96nug74/tI+UGWjaBbU3+j6qRSdqUU19j1x99dVTjqP9agseDrV8wbQlkiRJkiRJFoHspCRJkiRJ0kqGnu7pLOW9EbitlPIaM9sHOBPYBbgUeHMppX9sWYeJiYlZy/dtXQV50HoecqKVw5NkRH8PJC/LuUoOtN4h7MorrwTg+c9/PtCEAPuEP5KXdX/kwOXD1CTLSYaUs5UkVGgkRUmDRx11FNDrgCupVL+VMMhPLQ0j5Ym2PdtR2PuWLVt6HE99GGS/1UePPfbY7t8KX9Sz1rG8lK5jysG0lhxO0qxkbUnqGzZs6JaRQ5/qJQldUzMAz3ve84AmjFHTI94pVtJ3fJ4+nPK//uu/gMZRVnbrJXnZo6aNZFdeTpYjn5zR47pU0Lx3qkd05oZGnldixOgICc09V310f/xUQ3y3tY+X4fW3rrWWSGyhGVXbvnLlyuraPVqx/R3veAfQTM/967/+a7fMBz7wAdUFmGqzAH/0R38ENOG4slW1nwBvfvObe44XpzWgmXrRe6VpJ2+jeq6ycU2H+un1f/mXfwGad07246djNQUUV/PWyvAA3/rWt3rui6Yt/XWpDdZ3gq7BtwWaatf0jO6dnzaSnR133HFA833gp2zlaHvOOef0XLNvv3ScE044AWi+l3xqDYWDy9k42j4MDkcXM1FS/gS42v3/AeCDpZSnAz8HTpnBsZKk7aS9J+NC2nrSWoZSUsxsD+DXgb8G3mWT3d2XAb/bKXIG8F7go4OOMzExwVZbbVUdNQzjTNsv8ZU/nnqsMdTPOyqp9zlo9K7jDJNYSXWuJXMQ3/cAACAASURBVKpTr1jhkjF0F5qR7Qte8AKg6dn7UYQcCNUrlYOa1Bd/jbouKSi+Jx0dEFXWl5G6op69Rp8+fFN1O/fcc3uuz48+RRwd1Yihx15pWmjH2VHZu6iljNaz0nM46aSTAPiHf/iHbhmpI/GZ6flAM1KUkhVDm6GxFY2Q/viP/xjoXWVVaoJGVnJy9En+dGw51Ok98iNQKS8K/VUZn7xKSeUuu+wyoAl/lKM3NKGVcjhXSLTeEWhGZLr2F73oRQBcc8013TLapnppVVpvp3LAVRukZG7+uvQsFNYve62lztc23Ut/7Tqm7o/eo9iGzUSFnAujtPVSSrXd1Ordus9qwz796U93y+gd0ahd//sgBD0fOZ9KtZNaBk2ahFNPPRVokqj5ZIKqo2xMz8I/b9mWnqW2eQVEbbJsS+2lVzeUBE7vkUJ+ffsv51d9D+l98GkqdH69B7q/UhEBzjjjjJ7jxdBvgNe//vVAY3eyTa/IS7GV/Uqx9LYuxexrX/sa0Dxjr2K+7GUvA+DLX/5yzz5ejap9h0eGVVI+BPx3QN8yuwD3l1L0Jm0C1td2NLNTzWyjmW1cLtE8ybJnJPY+/9VMkjmTtp60mmmVFDN7DXBXKeVSMzt6picopWwANgBstdVWZfXq1bP2P4hJ02rzWVH5iAsh+f3Vexu0uFvEJ6aJSYFqvUGdS6M79YgVdgZNL1YpwOVL4kcIcZ5bKkltoTTtp/vj66XesUYPOq7C6WBqciP1jv1CVRoNy+dGPjODEnvNhMUKOx6lvZtZMbOqkqLPNLL5y7/8S6B39CRfjzhq90sP6NlqpKYyXkmRXeh4cSQJzegthg77RFBSH/yotHPN3b91bI2QaiHl2qZ6SYXz75b+1uhL741CHqEZZV9wwQVAk9rb+3LF9ADRNwwav4OoDnp/HPkZyN71LP29iImpdC+98qX3TCpSbYG4fmrzqJkPW9d99vdO4cB6zlIgvP+K7p2egdo338YrvF6+LXr+/lxvf/vbgcbfRPbr/TukPkih/MEPfgD0KgUxkaXw75WUZbXf3/zmN6eU0XOUz8enPvUpoDfdv2xa75z8r3xS0L333hto7Fk2pXYXGp8xfX9om+4bNG2y0gh8/OMfB3r9yvSOqF56P3xbEBcLlDLkv7P03KX+yOY9NbVnSpm+WxpeCPyGmR0HrAG2Bz4M7GhmKzs97j2A2wYcI0mWCmnvybiQtp60nmk7KaWU9wDvAej0tv+slPJGM/s8cCKTXuAnA2dPdywlt1JvzveeopoxKOGXetfR/8TvF31cfvu3f7tbRp7a6tH7+sXjRNVnkCpQ86uJqeDVY/UjMI0E1GtXvbyfiLy5dc3ax59LPXuNVONiZtD0gDX/r2dQSwmtHr3+9yNURVlozjWqSvHv6aj5osRtC8Eo7b1zvO5o4cQTT+x+rr+POeYYoHlG8pmAJhGV7r9GRoqO8ftr9KRRnR/NRV8JRUn40aXKaM5dyaK8n5VUHikqsiWvSugzjYxr77o+k01rXlw+BtCMzHRsJZvyc966Hh1PI0afpE7EZSnkcwPNvdL+snvfBklpkk+Z3lVvm6qzFBSN1P21+5EmNJF83kfm4YcfXpAot1Hbum8bvT+dVD6pRtqm5w/N9etZ6Bl6PyX5QkW/NykhAH/+538ONAql1AC/MKWemUb6r3vd66bUWcs5qJ1Tm+xtKy5loQg5qdXQvAdSSWQ/XpWWz5/un7b5pHBSjeL1eJ8dvcO637q/vj7aX3WVIu7vqXxQ5P+l376MbFr+k3pu/js0JhWVkuLblGF8PueSJ+XdTDpaXc/kPObpczhWkrSdtPdkXEhbT1rDjNLil1IuAC7o/H0D8LzRVylJ2kHaezIupK0nbWXB1+5Zs2bNlKmU2RJXsYSpoZ1C0h7AZz/7WQDOOussoJGA3/ve93bLSM6Ka3YMWlOmNr2hemh/ycResn/ta18LNKF1kpt9EjbJaboO/e+ldsloMazYr3+h8D/dJ/3WuaGR3zW9I/lRjm/QJCmSBKhzeimv9nwicZpHv71s6D9firzpTW8C4Pd+7/e6n8kRVFMCuv/ebvUcPvaxjwGNROvXR1IIuuw1hg9CIyMr4ZLswjvLff3rXwea6R7to7BRaJ5JDLX3z0q2Julc/w9aAVo26UPcY7IzTYt4x2Kt5SJZPCaxgqkOuJrS8eGmOo7OqdBsX0bXqPPrGvzKsJoi01SS2g7/TPX+ymm55gDpHSaXCmbGVltt1Z3W8OHtaj+0wrGmuv/sz/6sW0b3Sm2fpgZ84i8dR2U15VFLVqa2S+tU+dBhtf9qu/RMvI1q2lRlNB3u23jZVgy79lMwmvKQTWp/Hyav/XQdmlLyx9E7r3dFx/XO77r3cs5WKL1P1KbvH90DBVBoitKX0TOs3WfZv6aCdH3eGVrtRAxw8d9Zg1Y/FpkWP0mSJEmSVrLgSsrq1aunOLx5Bo26o1Oses1+ZOdDcnVOgH/6p3/qfqYRqsKwNIJTTx96HRih6QF7RUaj4IgfycWeonqR3mlXoV3qzeq6/P1RbzaGiHoHybgirnriXoWITpTaXz1qaEYsGkVoNWalb4Zm1Bodi/1IY5hEPVE5GeRAu9RYuXIlO++8czfc3I8KY3ixHF+9AiKb/dznPgc097gW3qmRmUZBUgegGenpXBpZST2BxlFQio4cVH2dpa5oRKXj+Xcujppq77jsQSM12YlX/GSnUvp0Du+8LcffGPrr0bFVZ73rWmkWGsVEyeD0vHy7orpFpdaPHPXe6/2Rk6R/R1Vex9O5vWJ1zz33VEOT20wphUceeaT6LKQASvVTu6QV3T0KcJCa5B1etRK8TzwGvSqwHKx176VCfuQjH+mWkXqlFO46nrctPTPZXc2O9T7omvXb243sRUtJfOELXwB61QQpS/pekh3V7FnhwKqPnG6hefflSKw21K82rXPot+rnlRTdQ12PksP57ywlzdOzVLvl3we1BV7Jgd7vg2HSkaSSkiRJkiRJK1lQJWViYqJnZOZ7p1FdqSWB6ufLUhupR78M9Q6h6UH/7d/+LQBvfetbgV6VRKhHrZGNV09iki6dc1BYVVSDoOmNapSnHqv3SVFCHNVH5/C9Wx1TveLaIl36Wz1fHcePTjSKUS9dSeZ8KufY26/1/nVfBvmX9PNJWQ5KikLuayHc8qPQ+yBb0hIJ0CgdGvmprB8ZaRSp1NNSv/zo5eUvfznQhPh+97vfBXrDIKMCIpv09rXPPvsAjd+A3gk/etIzj4kEaz4pUnvk5+HfGykdMazSJ9fSKFf3Re+LVyH0d/TX8mV0HCWFe/GLXwz0hmjrvddz0n33x9G16p7FZwvNfdUIVqqYH8kuZduvJdqUaqj2pKawyqZkE1J2vSqhtkXvg9ojv3SD7P+rX/0q0KuyCCXm0zb/XgrVX89Cz9Jfl9pXfSb786HVUklkY/qO8d8jtaVE/LmhsRe1JbVknvJPkX/T6adPBmVp0UVofLuieunfPR1b16f77K9dz0ffFVJevR+XbF3765w+VL3m6xlJJSVJkiRJklayKNE9opY8rd//npgm3I/eo7+KRjo+UZQ8vdXj1bLeXnEQOnZthB8Tu9V6imLQPKN6ruqN1s6l+uuatY+f7/bztx7f21bvNqY9997muvfq7WskVFukUcQoKM8wKklbkrmNki1btvDYY491R8k173iNjGJCKL9Nz1gjdCWY8mWUklu25+1dqplGTUrgpGgUmOrfJRvwKfhjMkWNRL2SIrS/juvVBI1K5RNWG83J1qScaH9vCxrNSYlR3f17IHVSx9ZxahFAGulrJOr9gzRaj4uJ+jKx/dAI2UctaS5fx6spTZs3b16QZG6jRNE9tUR6UsWkDP7u706uXeiV4ujXofvsE5pJ8dDz1rl8YkzZhN4DPROfFE6qcYzi8rYVE33WlmARsh+9p15N0DXGyC9FR0Lz7GUTtfdJ1xp9fnzKe90Xfa/pGqSEQ+NfEhfZ9f5g+o6I9fDtv95L1bnWfqudkv9LTUEbpm1PJSVJkiRJklaSnZQkSZIkSVrJgk/3rFq1aijnyEFyp6QpSVa1BGJRWvJSrNbuESpbm4qpOfBGdB3RgdYTj+3LRKlTDopHH310t4wcyyRVypHWJ7fqV3d/fySNSspTvbxDs+5rXJ02TvH4Y9fCpuNnw0zzLNWpnRqyd8md3oY0JSFpWNsuvvjibhnZuZfFoXf9EK2dpPumUFaFKgL8+7//OwCvetWrgGZqyR9Xn0XHbj9VIYlX0re2+frIHuK0n5eTNe0luV0SvV+XR86ROkdMnAWN7eqdjyGc0Dik6hy19bViWHCcDoDG8V7vgOrlp/D0WXSy9LJ5XNtI+/j7td122w21pkmbKKXw+OOPd++rb090HzTd88pXvhLoTVamZ/bSl74UaMJovQO4ptZ0r9RO+inJaAuqh5+qkL3qedeca2MSwtoUfkyIKVvwbZier6abNPVSW6VcdlJzDejnLuDtT9Pzuna1vz75Y7wuHc87++pd03Rl7XtW76ccv2PaC2jaJt07XbOfOhtmFeRUUpIkSZIkaSULqqSsXLmSHXfcsRpKrF5aTC1fC1OOikUtHX3smQ1KvzuoFxePXVNU4mc1NSFu88fVCFIqh0LJfFiitql3W0tkp2NGVcKPPoVGExqx+ZGbziElZRgFpPb8as6O8f9B2/xnS1FhUb01MvcjfI2wNHrS86w9K4Xwye79s5I9aZQpRzrv0CknWqXUloLiRzTx/vpQX6Hr0DlrIeb9RqC+jO6Dwhd1L/yyCxolR5XTv8caRWo/XbMf9Wpkp/MPcoCM7ZI/ju6HHA+VDt/fZ9l+THPuzylnQq1ereeukak/zlLCzJiYmBioqCr89eMf/zjQrMYNTWiuwr6POuooAL797W9POVcMNfcqSUyZL7yyo7ZPCops1r97MZleTCro/5aaoFB/n85BjqUqK6XIO617J3eop7Dol+rB26g+0/3RffdqaGxDdJ/895Tqo+8clVGQBTTfWQoZ173UcgbQm2gOpjrr9rvWSCopSZIkSZK0kqGUFDO7CXgQeALYXEo5wsx2Bs4C9gZuAk4qpfy83zE6x2HNmjUDR8X9FpgbRNvC9WojoZj+1yeO03y3lJOYHh+mzm/XfGWiujGMYhVH9ND0gDWaqM3H9vMh8c+tXxK3YZ7/ILVlvhmVvT/22GPccsst3dGFwk+h8ZHQSEvztUqfDY1/imylNuro5zPl/9ez1khLI5pauGj0/agtYDko9X1MzlR7dqqP7FzX7hfW07miP45XF3XvNAdfYyY+T7Jz2b0PQ9W9l6KiMv54caSo99e/x7p2fRbfQ5hUfwapu6NmFPYunxRRS3ompI54Wz/llFOA5h054ogjgN5nK98KhSLX1GTZh9Rg+ez5xHxSCGSjUsV8/aNioWdb862Sv0lM4geN0qZ7oH20CKBHCkwtnYPewzgj4BPZRVWk1n5HBaWWTE3vo9QRndP7jGlRXF3P9773PaA33DnWvfY9Ukv+F5mJkvJrpZRDSylHdP4/DTivlLIfcF7n/yRZLqS9J+NE2nvSSubik3I8cHTn7zOAC4B3D9phxYoVbLfddlOWevcMSosfaYuCEiNchqmz5tyhSVikSA+NnGv+OHGEVVvQT9QSaam8etkaqXglJfboNTL0x4kj01oETz9/k2GUlOk+WwRmbO9Cc7l+pKb7rZGIRmp+6XWNCmUrKuOjEfQcpYrouP5ccdSv5+ifZxzl1O55tO+ZPE9vp6qbRpkxQgCaBeLichR+lKrPdOxhIvAG1TUqfz5SQfcnjmT9+xj9iqK/FjTKkJ6ttvkyu+yyS3d0v4jMyt4HLSoqvw49tzPPPLO7TaN3RTRq6RKPymg5h1pUTmzzZD/eP0JKilQb2aM/XkyHr7r7KBipM1KEFInkVXLZuNSfmiKj+ui+1BROvRuqj5QevSfQ+DVp/5o/WFQ1ZI+1hQG1TQtBSt2CJhGjfLQUyeMXqu13Ts8wiuGwSkoBvm5ml5rZqZ3P1pZSFKN3B7C2vmuSLDnS3pNxIu09aS3DKikvKqXcZmZPBr5hZj/xG0spxcyqw5iO0Z8KvfPJSdJiRmLvSbJEmJW9p60nC8FQnZRSym2d33eZ2ZeA5wF3mtm6UsrtZrYOuKvPvhuADQDr1q0rPomNl16j1FoL1R3GKW/I65nVfqM83t577939W/dEnbjobAWNjBoTBg1zD3z9JDfKAVAOe7UVLuO5/fSAGOTo3G9aYJg6x2mjhZzyGZW9q2FX6KUPz9t///0BWL9+PdA8V4Ve+s/+/u//HmjswcvBcfVw2VJtiiGuXlx7nnFaseb0OWhKtl/Ivj+Opkwks0tCf85zntMtI8lc05H6Xbt2nUP/+zrEzwa9q5LSVcaHoer9iMki/X3WfdF91f++TFx7RbK9r/OTnvSkGQUOzJXZ2nvN1nV9tSmLGMbrVx/+yEc+AjRrUGkK3IcXq12K045+GkF/awqlNt0j9O5p2meYaRGfRiBOr9Sm6PTsdR0xYZuvq2xC007+ndHU46D2X/WI74q3P5XXu6dn4Ve4j+tc6R7656U1xjTF5dMHCN3P6FDu252RhCCb2TZmtp3+Bl4JXAGcA5zcKXYycPa0Z0uSlpP2nowTae9J2xlGSVkLfKnTC1oJ/Gsp5atmdgnwOTM7BbgZOGm6A01MTLD11lsPDDPtl5AM+id8qzGME91M9hlErHPtmOpVKvTLr8qpXrYUFPU0vbqha4+rTg6i5qCs3rWUFI0UfJIiqStRQamtWh1Hi/4e1hI7TVf3FjjOjszerZMWX89R6elhqrO0ynjHTClrCr2sOSXGZ1Qbmcg+FSYoRcU/85pyCfUQ90HObvFZDVI3lM5c16BQfGhGjtE51ofqRuWjpuxElWUQune6Pu9IGZPK1e5FP9XGn1vH1ErLtXf0tttuGxiSOWJGZu/Q2FTN6b/m6Cqkklx44YU9n3sH05iQr6aoyyYUgjzoXFIBaonRosIVU8VD8+y0grxCkP1yCmqvo0rilRS1/7L52rOXAqNr1fG8c7eIS1x4Z/P4Haf6+HZDaqwUGaVC8AnoYrI74c8V6yq8zQ+jpEzbSSml3AAcUvn8XuCYac+QJEuItPdknEh7T9rOgqbFn5iYYNttt53RgnO+5zfqedpRhTdrNDVoxK8eucLWfCibepaamxS16/ULSsVzxpFkLVGPerUx0Y/3Q4k+C8M8p9q5RumTshQppfDYY491743S0se/YeqidDA1tbfwI3PZnkYkNbuVGqFnXCszE5Uy4o8Xwwxr54pKg3x2/GJycfHAmg3oXsVts1VEo0LkwzJr7RHUwyrjSLhWn9ocfr96LBVWrFhRTcOgkXkcfddSI0hNlmLmR9rDKOBx1O59WoSej1TlQT6OOr9UBX98pRaIPhc+CaCISmVNIYp1r/nIqB4zeU/9cQct4SJ0f6Jt15bsiNflbV/lB5UZhkyLnyRJkiRJK1lQJWXFihXssMMOU5IdwdTebG2OvJYcye87U0alpEQVoRaRpBGG0jT7dN8aaXh1BXpHGjp2VDdqPgODRntRSdEowHumq3wchdTUjaiKzTWZW799lzK1ZEZxJFRLD61nU4u0iUiJqZWNCeNkH7XIlEH0UzVq6pnoZ5O+XrovtYiQeFw/moup5eeTQQufRvrdA78tqq9RMV5qiwyaGStXrhxoo/LDkDpRU6HULtWuP/pf1Ww93k/vd9WvTA21k9EXyT/3eGyVrV1XjArzde7nl1H77ov3peazqfPXojL7pdWvLUIoBqWuH/QsdF1RgZmpbaeSkiRJkiRJK8lOSpIkSZIkrWTBp3u23XbbrvwzaHXdYdaCme5zz0ynhIaRBGPZ2vXEqSklAPKrV+ozyaE1R64oF4radE+Uomurk8aEWn610X7TaoOS79XKRGfMmUzhLGYyt1FhZqxevXqKxApT719NSu0XuleT1GvnENGxT9TWnRlUz5jMLX4O/d+X2pSHpnd8OKbQ9FVMCDXTRFCzcaodlJgwMoyTa+3a47a2rEM2W0opPProo9223d+X6DArO66lNIjrzfh7p221djaietTaTdnbIEde1T8mp/NZ0/utvj3oefc7tz9XtHlfn2gvtXsY9/Fl4v61EObojqG2yb9vMTGfpm59O6R7H5PD5XRPkiRJkiTLggUPQd5uu+2qPap+vataSt9RJWqLx6s5AMb9aseJjoi+R64euFarVDp0H0osh9naiFL0Wzl6mHT0tZBVfaaetE8brXrM1Sm2n7JTYykqJdOh0WWNaO/DjC5mG5o6FyfM2a5cKoZRCGr3qF+Y4iDn2tmePzLqZzHoeLVtS81p1jOMujXMvZvrPYj1GKTsiJqtR3vrp5702z/S79wwXGhuP7VkEMM8k5mWj07Dw7yXw9yfGqmkJEmSJEnSShZcSdlqq62qKbxradUjw4zM5+KfMlslJS7aVCuvBQWVBl2/oVlMbVQMugfx3tUWGOynoNTmNuP/NSVltr4ow3yeJEmSLF9SSUmSJEmSpJUsuJKyzTbbVD2cpa7EhGh+9D4q34bZRO4Mo/DUzq3rOvDAA4FGQfGJ22ISt1FRS9oVfVtqC0ypzio7SEmJ1zzXpQtSMUmSJElEKilJkiRJkrSS7KQkSZIkSdJKhpruMbMdgY8BzwIK8AfANcBZwN7ATcBJpZSpyz86NN2jpDV+CiUmqqqt3RM/G7Q671yZTZKluI4BwPr163t+a5VPP8WjtXtGja7Bh0TH63rggQem7KfnE/cZNPU2aEpoFImqFnIaaFT2niRLgbT3pM0Mq6R8GPhqKeVA4BDgauA04LxSyn7AeZ3/k2Q5kPaejBNp70lrmVZJMbMdgJcAbwEopTwGPGZmxwNHd4qdAVwAvHvQsSYmJlizZk1VSekX0lobmQ9K116p/5RziWFG+INCkPtt88mp9ttvP6BJfa9VkH3Ycb9EbbMlJnPzSorQtocffrjnf5hZCPJMwpQHMV3ZhVJSRmnvSdJ20t6TtjOMkrIPcDfwL2b2QzP7mJltA6wtpdzeKXMHsLa2s5mdamYbzWzjfffdN5paJ8n8MTJ7X6D6JslcmLW9p60nC8EwPikrgcOBd5RSLjKzDxOkv1JKMbOqLFFK2QBsADj44IPLmjVruosTDZNmfZi0+LNdhHDQcfqpJDUlJS7E5FPe77PPPkCjpETflNq55kq/ewnN/VQYuNIb1/xNYgjyMGqLZzYh4y1I5jYye+9XJklaxKztPW09WQiGUVI2AZtKKRd1/v83Jo36TjNbB9D5fVef/ZNkKZH2nowTae9Jq5lWSSml3GFmt5rZAaWUa4BjgKs6PycD7+/8Pnu6YyktvqJZvK+ERu1KKjbMwnliPqN84rmHSZ0vPxRo0uFLQdFCg/7a55oArR+1+yUFxSs50BvRExcYFDVVKzJTn5RhksGZ2YIpKaO09yRpO2nvSdsZNuPsO4DPmNlq4Abg95lUYT5nZqcANwMnzU8Vk2TBSXtPxom096S1DNVJKaVcBhxR2XTMaKuTJItP2nsyTqS9J21mQdfuMTNWrVrFqlWrgN7pg37JwbzMH9fzGWaaZ9A0Qb/pI/9ZnNKpTfds3rwZaKZMDjrooG6Z3XffHYB169YBsMMOO0xb51GhpHJ+aklOvdtuu23PNj0ToOvYHOs3jHPsME7Ms1kDKNf0SZIkGT8yLX6SJEmSJK3ERh3+OvBkZncDDwP3LNhJR8OuZJ0XgkF13quUsttCVmaupL0vKEutztPVd0nZe8fWb2b5PYc2shzr3NfeF7STAmBmG0sptfnP1pJ1XhiWYp2nYyleU9Z5/llq9R2WpXZdS62+MH51zumeJEmSJElaSXZSkiRJkiRpJYvRSdmwCOecK1nnhWEp1nk6luI1ZZ3nn6VW32FZate11OoLY1bnBfdJSZIkSZIkGYac7kmSJEmSpJVkJyVJkiRJklayYJ0UM3u1mV1jZteb2WnT77HwmNmeZna+mV1lZlea2Z90Pt/ZzL5hZtd1fu+02HWNmNkKM/uhmZ3b+X8fM7uoc7/P6qzL0RrMbEcz+zcz+4mZXW1mRy2F+zwsae/zS9p7u0h7n1/G2d4XpJNiZiuAfwSOBQ4C3mBmBw3ea1HYDPxpKeUg4Ejg7Z16ngacV0rZDziv83/b+BPgavf/B4APllKeDvwcOGVRatWfDwNfLaUcCBzCZN2Xwn2elrT3BSHtvSWkvS8I42vvpZR5/wGOAr7m/n8P8J6FOPcc63028ArgGmBd57N1wDWLXbdQzz06D/1lwLmAMZndb2Xt/i/2D7ADcCMdx233eavv8wyuL+19fuuZ9t6in7T3ea/nWNv7Qk33rAdudf9v6nzWWsxsb+Aw4CJgbSnl9s6mO4C1i1StfnwI+O/Als7/uwD3l1I2d/5v2/3eB7gb+JeOhPkxM9uG9t/nYUl7n1/S3ttF2vv8Mtb2no6zFcxsW+ALwDtLKQ/4bWWyG9iauG0zew1wVynl0sWuywxYCRwOfLSUchiT69v0SH9tu8/LmbT3eSftvUWkvc87I7X3heqk3Abs6f7fo/NZ6zCzVUwa8GdKKV/sfHynma3rbF8H3LVY9avwQuA3zOwm4EwmJcEPAzua2cpOmbbd703AplLKRZ3//41Jo27zfZ4Jae/zR9p7+0h7nz/G3t4XqpNyCbBfxyN5NfB64JwFOvfQmJkBpwNXl1L+zm06Bzi58/fJTM5ltoJSyntKKXuUUvZm8r5+q5TyRuB84MROsbbV+Q7gVjM7oPPRMcBVtPg+z5C093ki7b2VpL3PE2nvLIzjbMdR5jjgWuCnwF8stnNPnzq+iEkJ6sfAZZ2f45icAzwPuA74JrDzYte1T/2PBs7t/L0vcDFwPfB5YKvFrl+o66HAxs69/v+AnZbKfR7y+tLe57/+ae8t+Ul7X5D6j6W946uvjQAAIABJREFUZ1r8JEmSJElaSTrOJkmSJEnSSrKTkiRJkiRJK8lOSpIkSZIkrSQ7KUmSJEmStJLspCRJkiRJ0kqykzJPmNlD4f+3mNlHRnTs95rZn43iWElSw8yeMLPLzOxHZvYDM3vBPJ/vBL8onZl9wsx+aWbbuc8+ZGbFzHYNdbzCzP7dzHbsfL63mV0xn/VNlhdp7+0lOylJktT4VSnl0FLKIUwuGPd/xQIu4+UoOIHJFXQ91wPHd841wWS2TZ9ZU3V8FnAf8PYR1icZL9LeW0p2UhYBM3utmV3UWXzpm2a2tvP5e83s42Z2gZndYGZ/7Pb5CzO71swuBA7oe/AkGT3bM7kcPGZ2tJl9x8zOYTKLJGb2JjO7uDPK+2czW9H5/KNmttHMrjSz/6mDmdn7zewqM/uxmf1tZ9T6G8D/0znG0zpFzwR+p/P30cB/AVpULfI92rXIWrJ0SXtvEaPsGSa9bG1ml7n/d6ZJFX0hcGQppZjZHzK5wuWfdrYdCPwasB1wjZl9FDiYyZTIhzL5zH4ALKUFp5Klh+x3DZPLqr/MbTsceFYp5UYzewaTDesLSymPm9n/At4IfJLJzKP3dRrx88zsYCZHhr8JHNix/x1LKfd3vgTOLaX8G8BkBnOuZXLdkp2ANwCfBo6NFe0c/xgmU54nyWxIe28p2UmZP35VSjlU/5jZW4AjOv/uAZxlk4ssrQZudPt9uZTyKPComd3F5HLWLwa+VEr5ZedYrVsXI1l2dO3XzI4CPmlmz+psu7iUIps9BngOcEmnod2aZuGwk8zsVCbbmXVMyttXAY8Ap5vZucC509Tji0x20J8P/G9hm75Y1gNXA9+YzYUmCWnvrSWnexaHfwA+Ukp5NpOGuMZte9T9/QTZkUwWmVLK94Bdgd06Hz3sNhtwRmeu/NBSygGllPea2T7AnwHHlFIOBr4MrCmlbAaex+TKqK8BvjrN6c8C/k/gG6WULWGbvlj26tRjLObok/kl7b1dZCdlcdiBxiHq5EEFO3wbOMHMtu54f7923mqWJAEzOxBYAdxb2XwecKKZPblTdmcz24vJef2HgV90fK6O7WzfFtihlPIV4H8HDukc50Empzh7KKXcDPwF8L/61a+jMP4x8Kcjdm5MxpC093ax7C+wpbwX+LyZ/Rz4FrDPoMKllB+Y2VnAj5iUFi+Z9xom4473qTLg5FLKEx2Ju0sp5Soz+z+Ar3ciEh4H3l5K+b6Z/RD4CXArk06AMNkwn21mazrHfVfn8zOB/7fjLH5iOMc/T1fZUsoPzezHTM7lf2fml5uMOWnvLSVXQU6SJEmSpJXkdE+SJEmSJK0kOylJkiRJkrSS7KQkSZIkSdJKspOSJEmSJEkryU5KkiRJkiStJDspSZIkSZK0kuykJEmSJEnSSrKTkiRJkiRJK8lOSpIkSZIkrSQ7KUmSJEmStJLspCRJkiRJ0kqyk5IkSZIkSSuZUyfFzF5tZteY2fVmdtqoKpUkbSTtPRkn0t6TNjDrVZDNbAVwLfAKYBNwCfCGUspVo6tekrSDtPdknEh7T9rCyjns+zzg+lLKDQBmdiZwPNDXiCcmJsrKlXM5ZTKubN68mS1bttgiVmHG9m5msxsBJAlQSlky9r7tttuWXXbZhc2bNwOwZcuWvgeuDYzNrOd3jVimVlbHnpiY6CmzYsWKKWX1XbRmzRoAVq9ePeU42j/+Pwh/fcOU77e/3zfes0cffRSARx55pPvZY4891rNfrPtMzy9qx9H97Ve2Vg/91r7QPJdrrrnmnlLKbrX6zKXHsB641f2/CXh+LGRmpwKnqkK77rrrHE6ZjCv33HPPYldhxvaeJEuYae092vqjjz7a7aQMQ+0LLXZuBn1R19CXnvZbtWoVAE960pOmHGfrrbcGYP369QAcddRR3TLbbbcd0HRcdNwddtihW2annXbqOZ7O+atf/WpKfXRd6hipXgBPPPEEAHfffTcAP//5z4GmIwLw4IMPAnDnnXcCcPnllwNw7733dsuok6Jz6rj6HGCrrbbqqat++3Ntu+22PZ/peNtss82U+sTOin9evjPi8dfuOoY3Vwszt07KUJRSNgAbOhXKkWWyrPH2nkpKspxJW08Wgrl0Um4D9nT/79H5LEmWI2nvyTgxY3vfvHlzdVpFI3pRm66R0qBRtkbmg6aNBk2l6JxSdrxSoP3uv//+nnM95SlP6ZaRyhLrtfPOO3fLPPnJT+45p86l4/pzbb/99j1lvLKjut1666RwJdX4l7/8ZbfM448/3nPsa6+9FuhVbYQUjNq903VomqimgPziF78Apj63Bx54YMrxZjr9NRvmEt1zCbCfme1jZquB1wPnzKk2SdJe0t6TcSLtPWkFs1ZSSimbzey/AV8DVgAfL6VcObKaJUmLSHtPxom096QtzMknpZTyFeArI6pLkrSatPdknJiNvWuKYbbTAJrWEH76SFMkcuDUlIyPytF5tS1G+UDjvKppFk3F7LXXXt0yccpE++y4447dMgoCiVNcvowih4SmTLwTqqZeHn744Z5zeYdX1UdOtdomZ1t/HE0T6V56Z+ba9JA/p99PyNnWX4vOr+PVnGTjVNKgMoOm9TLjbJIkSZIkrSSTliRJkiRzxo+Ua+HFGjXHXCbQOHRKlZBq4kN+FRor5US/fUirFIF+ioo/vxSH2rl0bKkttVDmqDDo3KqnP6YUlBga7T+ToqN74B1nVUZqiVQcr4A89NBDPb91nV4ZiWqL7ot3ko0hzFI5Dj/88G6Z888/H8+gPDJRLZlpWHkqKUmSJEmStJJUUpIkSZKRMMi3QEh52GWXXbqf6e/ddptMOiolw/tuaD+NxKUQ+PBi+UpIIdBxaiN8bYvH9Ugt0W+vgIhhfC60v5LEeX8T3TPVJ4b++jJSaeT34uujY8tPROfw9yeqWAo3VnI2aHxjYj280nTEEUcAsHHjxp4ytWRuUUGrZeQdpKikkpIkSZIkSStJJSVJkiSZM/3WrNEIX4nQlDRN6eih8bHQqF/7e58L+YNI+dD5fMSK/o4qgI/AkaohlSaqLvFvaHxbfH2kYuh42sf7gCiyRnXVOX3EjbbFtYR0XGiUFPmU6J76+mg/qS06h6+Pyus4XqkSShine6kIIu+HEhUqXUNNBZrtGkIilZQkSZIkSVpJdlKSJEmSJGklOd2TJEmSzBkv5/vEX5rmeepTnwo00z0KuYVmyiVOq/gpD033xCRufipHUwvR+dMfJzq6qqyvv84RHV89moKJUzp+jRs5pGpapebwqvrrenTc2vSI6iEnVu+sG1egVln/uc6le6974cOd5bysqbc995xcwslPq2k1Zk0taVttFexB0z21EOgpZfpuSZIkSZIkWURSSaFxLPJOREqIo96oevE+DbHKqxeqEcKmTZu6ZdTjjaFrfqVM9do14lB9/HG04mYcIey+++7dMjfddBPQO0KBeligeu0KU5Mjld8/pkdOkiTpx8qVK7sKiA8v1mhbbY1++7BXjdbVXqp98+GzMcRXbapv79RmqU3VyF7tpkf1UNu+0047dbepzZQipP99HaRKqEwtJFplYjiwV3/iysQ6hy+j/fSdo21e4VE9pOSozv5Z6FpV15rKEZcNUL28OqY66jvqttsmF8i+8cYbu2Xuu+++nnrUQrQHKSjdc01bIkmSJEmSZBEYayVFvbjYu4Smp6repLb5xaPi3KYWf5LqAbBu3Tqg6aVrpOB7/9deey3Q9PZf/vKX99QPGsXkE5/4BND0YH3PVeeS2qO5xXvuuadbJs5T6roUAghNgh8f3pYkSdKPlStXsvPOO3fbzdoie9qmdtOH+Wokr3ZO6rTaVJiqbigMtzZClyotVcH7ieg4avel9PiU91Fh1rm8chEXIawpz/r+0LFjaLMnptf36Lsghmr7c+qeq841vx6VjwqR/67Rsf09i8TkcmvXru353J/33nvv7TmuZyTJ3Mzs42Z2l5ld4T7b2cy+YWbXdX7vNOgYSbJUSHtPxom096TtDDNU/gTwEeCT7rPTgPNKKe83s9M6/7979NWbX9QTVu9SfijQ9AylOEiN8L1tKQ5a4lv7P/e5z+2WOe644wB4wQteADS9U99bvuaaawB45jOfCcC+++4L9Pa6r7hisg1RD/iCCy6Ycj3q/d9www0A3HXXXUAzPwuNkiO1RaMbvyiW5hf9aGiM+ATL1N6TpMInGIG9r1q1qqvkQuOfB02bKfVYSrNXk+VroXZR+0sNhqm+gxp9q52Dqf4TUlR8SnepNCorBdsfRz6DGv1L4fEquVQNXZ++K3zbrjZZdY+J26Bpe/X9oe+IWjr76Jviryuidt+rJPIT0Wc6p4/uUZ21v+rn/Xq0X03REXFpgzg7EevWj2mVlFLKt4H7wsfHA2d0/j4DOGHaMyXJEiDtPRkn0t6TtjNbp4O1pZTbO3/fAaztV9DMTgVOhV5v5SRZQszK3pNkiTKUvXtbry28lySjYM6ekaWUYmZ9vV5KKRuADQCrV6+eXfL+eUKSmxLR1ByW4qqafgpk7733BuCggw4C4NBDDwXgxBNP7JaRBPjRj34UgDPPPLPneAA//elPAfjUpz4FwA9+8AMAPve5z3XLaArof/yP/wHAi1/8YgDe+ta3Tqnzc57zHAB+9rOfAY1jrv9MMqFkvssuu6xb5ulPfzpQD9sbd2Zi74PKJclSYJC9e1vffvvty6677tqV8n07qb81haOpdB8aq/ZQbbCmaTyaYlCZ2rSIphjktKkpJZ+ITG2gfisU2k9ZyAFU59L0j3fwjAnaao6h2l8DdHXm/Ll0/ltvvRVoUkn4Omv6Svtras1/Z+l+appG7bd3Y9B9jmv2eIdX/a3vCDkNK4GbP7a2adrGTxvF6S/t49Nv+Gvsx2xDkO80s3UAnd93TVM+SZYyae/JOJH2nrSG2Sop5wAnA+/v/D57ZDVaBGLvG+D22yfVTvUCjzzySKBRMPxnUlLkXOV7rv/8z/8MwHvf+14A9thjD6DXuVY96be97W1Ao9D4BGvf//73gcYp9t3vnvRj+/SnPz3lOHLoUi9VTrcAX/nKV4BmRUtds+oFTXjzoHC5MWNZ2XuSTMOM7X3lypXstNNOXeXZO8VqRC4HzLhaLzRtTVwJ2Ku5GpnHsFkfzKCRvfZXgIDCYKEJa9b+amd9GZ1LioXaUt8m6jMpKKqrVxOkmMQ09v47QgqKlB3Vx6stOoeOo3P55KLx3ql+PgWFykj9UbvvVSApVFJtdM3++0jHjtN83qVDio6cdXVPa0nhBqn2w4Qgfxb4HnCAmW0ys1OYNN5XmNl1wMs7/yfJkiftPRkn0t6TtjOtklJKeUOfTceMuC4LTkwXr1EAND28V77ylQC8853vBGD//ffvlvEJ0KCZa3vta1/b/ezCCy8E4Dd/8zcB+Ou//mugdxShXvUXvvAFAF73utcBzagA4DWveQ0AZ599ds+2008/vVtGc5JSR2LSIoBXv/rVQJMUTtelcGq/3ziynO09SSKjtPcVK1Z02yD5nUDjXyI/CI2wvXKtv6VuKMmXb4viZ/rfp7NXW6cy8ve75ZZbphxH9ZEa4FUAtf8xMab3o4kJMQe1mzqHviN8uLO+d2IY9iDlQr99uy2FSPuprt4/SNej3wqp9teu+xkTf/pwZz0nKfvy1fG+ljGE2V+P0H5zUlKSJEmSJEkWg7HOe65enHqKfpnpo48+GoDTTjsNgMMPP3za46gX78tq4ay/+qu/6jmHj9zRvOA73vEOoInu0SgA4LOf/SwAP/nJTwB42tOeBsAdd9zRLfPJT07mY5JPyfve9z6gV/FRr/8tb3kL0PRuVRamznsmSZIMYmJigq233robwePbHKm+8m3QyNorKdH/Qb99si/9HRfH8yN8+VaonVQb6iNKYkp4HccrzlIWpAxIFfCJMbW/2vRaun/55uj61Kb6qBbdBykqKuMXYNQ21Uuqifd/kS+Jjq0oT6/+qL3X8VTWf/fp2anuUmv889J9kOoS74Wva0yaqvvk9xtEKilJkiRJkrSS7KQkSZIkSdJKxnq6R7KTpDifGEcOs3GaR+FU0MiM0dnrQx/60JRzSW78zGc+A/Q6Tml6RhJlXF0ZGhlNTrU6npcEJccp6c4b3jDpE/fBD36wW+ZZz3pWT70UNu3D1Lw8mCRJMh2rV69mzz33ZP369d3/hWT/uE6Ynz5Qm6c2WP/7YAah/dQ++ukDtaVqXzXF4B1D1WZqekQOq7VpCE1V+WkMoe8NTR/VnH11H3QdKuOnjTTlot+a7qmta6MgC62v5q9L9VH6DDm1PuMZz+iWkaOsviN0f/y0kaZ7dH9j3X399Vv3wIdN+/LQPDcfgjwMqaQkSZIkSdJKUkmh6bH6nqt65ELOQz5JkXqxOo4caGMPEuDKK68EmlC4WqIenUPH8b1t9Zyl5Ciszzt7nXTSSUCTgOi73/0uAN/5zne6ZaKSIgXFp0nWaEY96KgUQdNrV11rTlE157ckSZYfa9as4cADD+w6Zvq2SyNnjcxr7YHaH7U5ahP9cfSZyqgNvPHGG7tl1J6pnVR9lCjNf6ZzSkXwSroUFKnlMdkcTA3RrSW/9Gq4r7u/B2r3pZLoeN7ZN6bVr50r3rubb74Z6A3RPuCAA4CmvVY9fEoM7R9nGnziNqlF2q+2tIyuS89J9fOqjf/+6kcqKUmSJEmStJKxVlLU+1OvWXOU0PQQpRT4MLdI7C17lWTjxo1Ak4ZeSXR87zbuV6uP6ipV5Pjjjwd6e9Sq8wte8AKgCaOuLdYlRUeLIioVP8A111xTraNfXEs98LgwmC8zzknhkmScMDNWr149ZRQOjeIQR+TezyMuNKe2o7bwnZKTaUTu09lLQdE2P2oXcbE+tVm19k3HloLuFZDos6FtXv1RGSkhNd8WKTtSUhRe7FPnx2UCtI//7onhzvK98anz5YOo7xido6b+63pqiriuMS4IWUsKqjqqfl498X5J/UglJUmSJEmSVjLWSop6iOpNKkEawEtf+lKg6SUrvb3n+c9/PtD0ktUrvPTSS7tlpKBoTjQugOXPIeVEvVJfRiMCKSmqq/cxUVSOFBD1YP3iUT46CZqesI9i0oJXQtfne9IxEZKO40c+GjVEpSlJkuVFKYXNmzdPUVihaWfjYnS19iQuHujbE7VD8iVRm+qVFKkH0V/Q+0pE3wi1294vL6o+MYLHb4v+IV4pkOKhc0kx8u2wEnLG5Jm+zlLZ9Vttq1d/9D0mxUL3zivyOpcifvTd4KOEop/hoPZb51J9av5Gui4pYIowgkY1GkR+eyRJkiRJ0kqyk5IkSZIkSSuZdrrHzPYEPgmsBQqwoZTyYTPbGTgL2Bu4CTiplDK9dtMiJMtJAjv22GO724444gigcTD98Ic/DMDTn/70bhlJeAoVk7wmx1NoEutILpQs5pOnSUKU7Ch5zst9khRV1//4j//o+R8aGW3fffcFGjnShyBLbnzVq17Vs/9LXvKSbplLLrkEaOTU2iqhIjqdeTnUS5FLheVs70kSGaW9b968ecrUN0x1MBW1Mv3Ww/HlNUUhh1A/TaL9NM1SW1NGzp2azlC76aejtE3fEZrW8FMfcUqq5oAb615L5qZ2XmXi/9B8x0SHWT+9EqeAdC7vPKwkbvvvvz9Qd4rVfjFM2V+7nmV0DPYBJjqO7rf+9ytkj2rtns3An5ZSDgKOBN5uZgcBpwHnlVL2A87r/J8kS52092ScSHtPWs20Skop5Xbg9s7fD5rZ1cB64Hjg6E6xM4ALgHfPSy3nCfU8tQqxVo2Eptcnx9eY2AbgnHPOAZqevU+II6KzmHq1flShlUPVg1Zv1+8bRyE/+tGPgN70+urxyvFWjmBKjwyNcqL01RpF+PT6CkeWihQTCXmio5sf+dSUl7aznO09SSKjsnczY82aNd3Rv1cB1DZIBai1J3G0Xhu9qz2TghJX/YXGeVRKtdpN337GpHDa37eBKqN67LXXXlPqLPQ9ouP5MgqUqAUfCDmP3nTTTUDTpnuFSHWLCT/9/YlLCugafCizjqnfUop8Ga/g++vyDsL6HlO9tM0/dz0vBXToufn7s88++zAdM/JJMbO9gcOAi4C1HQMHuINJuTBJlg1p78k4kfaetJGhQ5DNbFvgC8A7SykPBN+DYmZVBwQzOxU4Fdo3slZv9JnPfCbQhEhB0xtV6PGee+4J9PYU1YtUyG8t1E49X/Wg1bP2vX/1VNWbVe/Y91x1nOjb4nvbMRmQ8POEOr96wgo9vu6667pljjvuOKDxTdF98vOHqqO21eaQa2HJS4VR2HuSLBVmY+/e1nfbbTfWrFnT9WOoJWETah9rC6hqm9pL35aqvFQStWG+DYz+D2pbvU9KXOBOCo9PQx8VYqk2WnwPmu+z2O7X1IQYDuzviZRvpbHXNXhlR9cY21l/HLX/qo/aeu8jo+ejsvru0j3w16Vz1BK9RX+VqEp59N2p5+W/n7SEyyCGUlLMbBWTBvyZUsoXOx/faWbrOtvXAXfV9i2lbCilHFFKOSLzZSRLgVHZ+8LUNknmxmzt3dv6oIzcSTIXhonuMeB04OpSyt+5TecAJwPv7/w+e15qOI9oPu7AAw8E6sl8ohezj8pRimH1nNVD9MnTfCIdaHrivmevuTr1TuWj4nvk6v2r56r//fyhvKZVd53be5Lr2DG1tBZA9MeUv4oSD/lesnrrUVHxvfZaD7ztLGd7T5LIqOy9lMITTzzRHZH7diC2FbXBqsqrvdVo3rddGv3Lr06Kg/c30X5qw9Rm+fZW29SGRuXA11ltslSW2nFETBUPUxWZmNzNI+WktlhrPFftHupcUVHxqB46f0211/n1TOLyAX4/XbPus78uldd9lmrjFaKa8hIZZrrnhcCbgcvN7LLOZ3/OpPF+zsxOAW4GThriWEnSdtLek3Ei7T1pNcNE91wI9BsSHzPa6iTJ4pL2nowTae9J2xnrtXskVWnaxjvOSt5TeLLkMO/0o+mY6MSqkCtonKK0X03m03nj1JBCkWFqsiNJgUoW58+l65K85h3LNKW13377Ac1UkxLAQeNEq+uQPOfrF53Gao5cSZKMB6UUHn300SlhxjB12qHmXKu2VNMRtYRmSi6pKXe1R35aRG2p2rVaYjWdN077RIdaaNp27eNdApRyQu2rzuWnZnQfNK2h//390T1TWx6DJHx5nUPH8/dWfkExiZufXpEzbZzS8XXWfprmiVNntfoIXx9NO2ktOLk67Lbbbt0yw0z3pCdrkiRJkiStZEkqKTHtby0Veyzje676Wz272JOFxgn1TW96EwCf+MQngN6VktWz1/7qIdZCx6RuqGeuniw0owXVWfv4Xqmcw6KDmVd/dF0x3f9hhx3WLaMRgc6pnqxXiLwSBM2IxaczljNtHDl5h66lmBY/WXoMSpQVUXtQs81BIZdiUOrzceaJJ56Ysoqv3wZT2wj/vBRsUFMzhNqoqDjXnDXVrkkRrz1TjfTVhvr2VqGxWmFZ2/wKvlIapE6ojFcl4rXHVYwBLr74YqBRf6SAe5VB3ykxzb+/hzqvFJ6aw6v207FrSko/+6+lENGzjN8n/ph6trfddhvQ+/1SS4435RzTlkiSJEmSJFkElqSSMio2bdoENL3T66+/vrtNqogWFFRaZCXcgaYXqB60eqW+x+nnVKGu7PiQZV/G9zL1WUwXXVORNHrQ/KlPna9e+hVXXAE0vileSZFKokW1dE7fS47haaqPHyHUUuUnyagZxg9qkEoSVddhVJLa8eI7Ok6YGRMTE91n4ds0qb5SeGOCM5jarqmsTzIm5UPKiXw3fEp3PTu1yVHBhkbNiInNvJKi86qMVHfvk9JPtffXFZNd6njf+ta3umUuv/xyYKpS4ZdZUZuuNjimwPfn0G+VqSVzi742te+RaMf+/1gm3m9oZgR0bClg3ja8L2Q/UklJkiRJkqSVjLWSIpXkkEMOAZq5RWg8pRVhI/+OG2+8sVtGC/GpB6zet++Vao5VPdiaV7R6lrF36/071FON2wZl8VVPWnWHRglSfTQfe/DBB3fL6BqV5G7jxo09+3j6eXknyUIxW+Uj7j+byLSlnrxwVGzevJl7772320Z4VUKqSEy05tuuGElSU4HlHyIlRQqIV1t0TLWpNTVBZdTeq4329Yltsq7Bqwm6nphY0ysFsgndD/mW+OvS/mqLpaD4eyj/x5iArtb+x8Vo/f81n8h+x9G11pSVOGugZ1PDq1jQu/yAn5noRyopSZIkSZK0kuykJEmSJEnSSsZ6ukfTPAqJ0vQGNFLbueeeCzTOpJrigcYJVfKVZEfvLBudamtSZ1ypM077wFSptLbehNBnkha9M5PW6JGc+p3vfAeAN7zhDd0ykkGf8YxnAM3Ul5f0+q2C7FFdx9GRMGkX0clxPqYnx3nKc8uWLTz00EPdMFrv9L9+/XpgaiIx7yiq6RShNsyvlSbn/tjm1KbO5bSpqZPaVIXawJpzrc4lx07Vz4c7K3mmpmBieLC/Rl2zHF8ViAHNNI+uWWX1neO36R7WpiajM62+V3xKjOh+EPf1f8dp0Jp9x2kx/72mc+h7Uc/APws/9dOPVFKSJEmSJGklY62kqIev3q5XQOQwKydS9Xb9kuTq6cYeplc3+ikgNaS6xLBef0z91jZ/vJgMTr12XSc0SYo0irj22muBXpVEowaNQtST9r33uCpnTFqUJG1iJirHoPDieLxcBmKSLVu28Mtf/rIbZurbASnOMczYo21SNXR/FWYMzchcZWphyiqj9qnmKKpnqeOoLfQjfH2mRJhSTWop7wcFPMT0DVIy9txzz24ZtbO65ltuuQVo0sn7Y8bwYn+f43eD8DYanY1rdY7JEQetcK/7qu8sOfhCo+CorrUVoAcl7xOppCRJkiRJ0krGWklRL/D/Z+/do22rqjPf39j7cHgKqMgb5I0g8hJ5iBpUiIJE8momoVNeAAAgAElEQVSm0KRR0YR7b7yJdaOJGqtSWlbdqLcSNc3SSLQSbNFCQ6J4iS+CcMGIvORAhAMICALy0kCigsA5Z9w/1vrW7KuvvuZZ++y195nr7P61ttvee80xxxxzzD7HGv3rL6V7t3ZUMSg+vMzuFLU7FruitlGqX+1OtXONwnl1vhiVtjTEbaHH2m2rH5uuWv430lB0jbVr1w7avOQlLwFGbZt2R+7vMRqXxrGSQzMTs4c2v5WU5RiPP/44a9asGbDRlr31fnlaI+waovVVPhfSum2SSZ/K3YcAw6hvnPqxz1LtxZYoaaVdb8V0iOXwKedte88QRUnh/Hpt22hN1jqrObR+OmLtfWFXy/54VkP3ZVNriD3yyers+Hwx2+g98M9Sz8mWlvH3I2bFhmhbf8lx2CiTUkrZppRyTSnlxlLKzaWU9/Q/37+UcnUp5Y5SymdLKas31lci0XWkvCdWElLeE13HJEzKk8Araq0/KaVsBXyjlPJl4PeBD9ZaLyil/AXwJuBjSzjWqUO704iV0I7Ql6m2qeHFwMjOpx263XlqN+q9vG2CHV1DtrqIlfDRPJHdXNfSTlq7futBrR2vxqz0/9/97ncHbU466SSgKaaoolp2B+w97DUOa7ONyrbPALZYed/S0ZaozSOKZvC+V1FEyBYYwTMVeX/iiSe4+eabB9GPthCrGAu/zlomRayB18wtkyJGWOukTxFv/9ZvrbN2DfJsi9ZJOz7vR6PnHvlQeFbZMs5iPDQO3UMUDanP5P+4++67D45pDde1IkZef/v0/NbXUvflr9/m/xglc/OFCvWcbL/yT1KbKMpzKj4ptQcVR9iq/1OBVwAX9j8/H/jFjV4tkeg4Ut4TKwkp74muYyLH2VLKfCllDfAwcAlwJ/BYrVXbpvuAvcace24p5bpSynXpCZ+YBUxL3pdntInE4rCp8p5re2I5MJHjbK11PXB0KWVn4PPA8zZyij33POA8gNWrV3eKK913332BmMIVfSUHUzn9WDpLf4vKE3UVVQL2YcX2pZbzkGrseIoRGsquLYmboL41Hmta0n35Whn333//oI1C4F7wghcATeIhm1xIVJ76bgubnjVMS95LKZ2S9y0dvhpthMhpU5S8aH/JtA1t9Y6Ggr2W+p615IWbKu9W1rfeeus6Pz8fmga8Q2lUwd0nfrRmdUFroJ5PFHLr19e2hG9yWJVZxZqNdEymF43dtlHfGlcU7qy1Xdf0tXegWVfVjyou2yCNPffcc6it+rPfI74GkebQhvzKRaEtlYV/Fm3mHr0X+m0dZ2+77TagCSyJkoJOggWFINdaHwMuA04Cdi6l6IntDdw/9sREYgaR8p5YSUh5T3QRG2VSSinPAZ6utT5WStkWOA14Pz1h/lXgAuAc4KKlHKiFdxCNkszoM+04lYwHml2xUh4rRMvu8LT7lHalY5aV8G2ixDj6TEyMZ1bsZz7cOdIItYONEiP5ipuRRqjQQO8Mq3A1gH/+538GYP/99wfgRS96EQA33njjoM24dP/WSVd9RuHWXcVSyrvVwnwypKiNd26L0nePm1srF3pGOt87ccNoaLrGYcPXffpve0yQk6SOSSu02pwPJY2gMerd1LjsOZJBaaDe0dse85XKbeijnD19ynHrTH7rrbcCcPfdd48djw9J1fjsPE/ieLvVVluFjpVLgWnJe62VdevWDVIZKGkkwPOf/3ygWWt89WEYTWQpFsEyKj6hmebVypZfM30IMTTsyMte9jKgkYUoCEHyrN82eMAngdP5NkxZ7f37bses8/UdIZbahiDr+0vnab5sP5o7/z1gobnTPet7TQyLPU9j1++IWVR/d911FwDXX3/9oI3mUOcrWMOOWYEbbZjE3LMHcH4pZZ4e8/K5WuvFpZRbgAtKKf8VuAH45AR9JRJdR8p7YiUh5T3RaWx0k1JrvQk4Jvj8LuD4pRjUxuCL20X2T297trY7HfMhw/LFgEYTFBuh3WUUMtWWtMwXDYzs1dLAZHcU7Jh9saZot+zZDR/+DKM2SLXR7h2akgA6dvDBB4+MRxqqdsWaZzue5dIGp4lpy3sppbUIo0cUKqk5jez0kkdph3vvvTfQFM+0xyRfhxxyyND/0Gg5/t2wxcmU4FB2cbXxxeGg8WMSQ/Od73xncOxrX/sa0KT9jnxJfMivtG8xM/azn/u5nwMa3wLLkui+NHea0yj81fuf2YRkJ5xwAtAwKd/61rcAuOWWW0aupb4t6+ohbVvrjGVYlpN5nJa8P/300zz00EOD+7Lz60uD+N/QPHtfrNWul74Qq+QvSgimOdQ6ZdelI444Ami0ePVrfe707PU+qB97LR96HPkS6t4lY2Jf7HslFkL3rHcmKnmicUXJ7nzocMSYap0XMxMVBvQhzELkayn51bujd8BeX2PXPFs2yrIz45Bp8ROJRCKRSHQSM5kWfxImRbvBiEnRbl+2a+2SpSVFfWsnbHfJ4xI82f91vmdSrBYReVj7Mes8uwuNzrF9R/ZvHx0UlRfXblu7fUX52OKKdsds+7MaS5RyeaVhfn5+IgZFcxRp3/pMdmMrOy9/+csBeP3rXw8MFy4TpHHqtzzw7bgkB9IUFe1lWRL5KOn3ww8/DMAjjzwyaHPfffcBDRun35YBOeWUU4BG+9I1rS1fYxNT1xYV4f1EbBpwMSiSZc2zfY80fjExnk2y49f8nnjiiUDDqAB86UtfAuCOO+7Awo5H49C74VO8w+xFBwnr1q0bPEN7z34d0r1GEVaanyiFuk8Y6Yuc2vaSHzEzRx555Mj116xZM3Qtu75JBlRgMLqm+vHrm32W3r9DDKNlrsVGqNirZNbOj+ZQcqN+rS+h4NcbO55xSUWjxKH+uUXrhbc4WEiOPVti+7X+KeOwcr89EolEIpFIdBq5SUkkEolEItFJzKS5x4cZRyHIoqOiJDxyPhKFqzaipmF8hUvr3CcaS+aiyEFStJqncCNKULSz+ovoTI8owU5bciFv/opMTd6JTfN16KGHDtpcffXVQ/15Z91EDxsz9fi6MZEsi9I944wzgMb8Ztt/+MMfBppnpkSF0Dx/mehkJrEmO28q0XisvPvaKc97Xi/nl6VzZSaSU6L6sSGpMpnot8Z35513DtrISdfPn3U41DhkklJbOSdCM7+i2/Vu2PdG5i9PhUcmGNH1MrNZM9bpp58OwAUXXAA073MUqu3fk1lNfCjMzc2x/fbbD+bDPgPBJ5CMKqb72mIWMr9J3mRisOubjuk9UHi5fd5KsSDznsKd5cAK8OpXvxoYdUKNnLv9GtqWpE5O7HYt1X1ozDIFedO+7c8nErXHZD6Nasn57zXNXRRYEtVjE3RMY9R3mDX3a2x+nuz8RMEAHsmkJBKJRCKR6CRmkknxWl6UFtmzHFYrkuOf2mrXLm3SwifjsVqjDxXU7tTubj2Tol1pFBas3bHaWMcpv1v3Drn2Wt4JM9pJt6UQ1z1Lq5HGe/jhhw/aXHHFFUCza4/Shk/CBK0k2OfpNZiIgRL78NGPfhRoQhM/8IEPDNpce+21wKhc2URk+kyMjLQ5JdmCxkFQ4xCraNkNyYVkR2GM9lpKkCXnWDlS2vB+aU8qAyGmzlZ91XnSzMV2yNnRtjn22GOBhn2x2pnmRVpl5HCoUGw5vOrerSOv7lkhx7ofO4evetWrAHjDG94AwGc/+9mhsVv4RG/2PV7OZG7TQimF1atXjzCDMMrw6rdde7QGK7mYT9gJcYiv/19/i1374Q9/CDTh7tDIvxjFyClW50tO9H8UqBB9D/kx6360TlqmSWyPZxTt95FPna9xWFnXNbTu635sFWTJtMbs09vDKOMVhSlHVZjtOXYcQuQk3hamLySTkkgkEolEopOYSVU3SlImRAX8YNgmqdBj7ezEGNg23mcj2iX7gldRshrv0xKxCz5VceST4kOi/Q7dXt/bG6NQP3/tqHCidvLqx2qf3ufH+gokGszPz4+kzbbwcmbbqGyDyhJ85StfAeCyyy4b6eeZz3wm0CRqs74S0iZlc1fosIWuJY1TjIVlAcSkKbGZ/E+sL5cSZUnzu+aaawC4+eabB20U6umLnUXMhSBZtAm39H7ccMMNQMNuWFn0Plh6FjYpl/4WYygtVxo3NJq+/Ew0DpvMTQytwsHl3yO2C0bT6/txwmyVkRBKKczNzQ2eW+Tv5EPo7frm1+AodYT69GUH7NqltdcXs7NMgQ+71TiUtBIaVk/9REk8BX8/VnY9CyFZt/3p+8gnZrRFX8VWyn8mCn/27IZYFrvm+xIAGp99Z7SW+KSEdm3yIfSR76X/zoz87iZKz7DRFolEIpFIJBKbATPJpPgIHrvb9qmBvV3NfqbdqLQiu1PUjtCndLYY521ud5M6X20jDUG7UGkT0uRsQiSfllnjsVqX19ijFOC+nHxUFFHHFD2h/mwBRs/IaBxWG9a8RIzXSoGVqbakdlEqatnBdZ78H6zvhuZY0TTS9JUYChqZ8cW8bDHIv/qrvwKadyFKaCZtTizA0UcfDcBJJ500aHPQQQcNXUP2dcscKHrB35dYIGj8RKTV6Vr2PVQxO8tmwLCmpvn064BNIuXL3utds/Z+sTQ6JqbKJgDT+PVM5J9z2GGHDdpceeWVAJx33nnA7Ef1CKUUttlmm5FU8dDMdVsKdMmiX5esz4J/lt7Pw36mZxolAdRzVVs9Q/mGQLOOaZ2LmM5xkT9RcU9fhsS+5/77SO9ptG7qvsR82Mgxzb3GHhVO1Hn6jvHRUNAwOf5Z2vvykUf+e3dSZFr8RCKRSCQSM4vcpCQSiUQikegkJjb39Et5XwfcX2s9s5SyP3AB8GzgeuA3aq0bjyeaAjw1bs0rnoLTb0vverOI6GfbjyhB7/hq6UdRiZETqyB62IewRY5ccmwUxa2KtvZaovJkXrF0n/r01GSbo5I3R8GoKUmUp5y2bHvvMGUdEjW2WTT3TEve7XxH5h7vbGeflebPO1Zbp1iF8fokapa6lgwqxFb1daLwP8meaGEr06KEJQ9K6GcdTOUcqfBkJc6ycip6XbKjCsk2TFSmTvUtp11rZpRpS2PUu2Hn3JscI/Ov5kfrgBwZ7TxLvjUvcijW/FvINKT5suGmSgJ31VVXAY3JytLn22233UQ0+LQwDVmfm5tj9erVg+dm71lmA28KsKZqOXPL5K312q4dvnJ0lJRQbTR/emesHEs2dQ2F+uu5Q7O++TFH1YJ9Ogd7TlQbzffjx6z+7DujeVUCRb3vbd9r/nM7Dv325iN7fb0r0X3577wobcY4GY4SRLZhIUzKW4C15v/3Ax+stR4EPAq8aQF9JRJdR8p7YqUgZT3RWUzEpJRS9gZeA/w34PdLbyv0CuD1/SbnA+8GPrYEYxyBr4JsNTlpQ56xsFqRNEk5gmrXbHfb0ti0S9eOT5omjCZi0v/WmU47eZ0vDcNqsdI2taPWOBQ6Cs0OVfeh+7JahE/C41kXGA2b1vlKFGb7kcbhw8zs9X2yLLuz9+UCZgXTlnfJQFvFT8mbddb0z0/Pw6aYl+wofDJiE8RUWOc4iEshSB78O2bHqN/qzyaLUj9ystXYo/BFX+HYvn9iKjQfGofS0kPzLuid947e9h59WQrrgCttUm30rlpHcb0vmnu9x5Zd/PznPw/Am9/85qE2NimX5u7Xf/3XAbjuuuuA4YR4N91007K9M9OS9VIKW2+99eCerWx5B07Ji62e7UsIRGHKkk1p/RF7K7nVGhalWBBjpySC+m3X7XEhx1GphLb08fbdsOOz8ijZ8muAvZbGpnVX4e62jZzTfeoJyz76YAr9b0P7/b1G4c46T30vpJTLQhMVTsqkfAj4Q0CryLOBx2qtutp9wF4LunIi0V2kvCdWClLWE53GRrc9pZQzgYdrrdeXUk5Z6AVKKecC58L0fBP8TszuSr0tMQpTU8iidp5iEezu2dvktZO1u0kxHbIXSrO09mVpd+pH/9sdp+z4PmmOnS/vg6L/o1TOPjzMzs+40OpIc/OhdXbefYhgFKLn/XlmAdOUd+jJlDQjK196VrLBa24tK/ibv/mbQKP1SG5f+9rXDtrIRv2tb30LaJKmWS11XNruKJ14W7kEfeaTjVk276abbhr6TOeIBbLjkAastpZpklyJJdEcthUnWwj7ELXVeHTNyKau+1ABR1vI8TWveQ3QJLdTEjcblq37UkI+Pe8XvvCFgzZPPvnkwH9oKTFNWd9qq60opQzWE6u963mL+VIbm6xMmrxnbaMyG2Kz9bysP4VnW6L1ViH8ei5af/VOQsOC+QK10Vrmk8JFfiv67RNt2nsWG6F1wq4XnqWXHGns9jPJn1/r7Rgl255FhFGrgb7XIobSM152nsclVrWYpM0k5p6TgdeWUs4AtgF2BD4M7FxKWdXfce8N3B+dXGs9DzgPYPXq1bPF+ydWIqYm73NzcynviS5jarK+7bbbpqwnlgQb3aTUWt8JvBOgv9t+W631DaWUvwV+lZ4X+DnARUs4ziF4Lc8yB5F9G4Z3t7L/yjNfkRB2xyntVf35ktu2vXbC0oathid7tHbv2uFb3xbrYzDuvnyqev222qfGqt11FDHiC3dJU4gS4vlS39Zu6W29k6R8nwVMU97n5ubYZpttBlqLZaK8DfjEE08EGm0cmqJ/SogmDUc2dGiiIqQ9id2zz7wt2svcd+v/9nyfKMu2ve2224BGLqN3QsekCfuicDDqzyQt0UYDRD4o4xC9Cx5ta4buQ9q//rdFN1VaQM9AafbtO/rVr34VaCKjImy//fYTFV5bLJZC1rWuWF8Mn+5d7KFN8Kd11RfBtL5yYqy9P4X1tdK6qPdC663V8MWGidlRv1EhPslkFKHky7OMi2KybSV/Vrb8+fptv4/0t9Zr9WPnxyfhFKtk7133aKOvbFsYjRTUNaP70n14fzU75jaWZJJ3dzHfHm+n52h1Bz075icX0Vci0XWkvCdWClLWE53BgtLi11ovBy7v/30XcPz0h5RIdAMp74mVgpT1RFcxk7V7vEOnpYBFN/kwLEtv+YqbovYsLSYqWlS96GrrTKe+5WjnE+RA48BoKXqIzSui6dRvRE370FB776I6LQVoz7FjFO0XXUv0rOg+0X/W0U396D4i59pZTOI2Taxfv57HHntskJTvwAMPHBx76UtfCjTOe0cddRQwXPtIz82bCFX/BeAb3/gG0Jh79DxsyL3kYhKTh6dfo1olOj9KlCXaWG28k6O9L8mu6HfrNCyTiaWh/bV8uGp0f5Pcs+Adgu2Y9d57h3rr3PiP//iPQPMsdY4NbZVp+dvf/vbQNW0/69evn7mw/bm5ObbddtvB+muTekmmJT9KAWFN5wqhVx0nya81i0tuxqV+gGbt1W+Zzex8+vN1zH5HyASk5xKZrL25x5v/7T1rPqIAA39eFDrsHXgFKzfeHKvvHtuPzFda/3Vt+50lU7Q+i8w2Piw5SuamNv69Wmh9n9lxFkgkEolEIrGiMJNMinf+jDR2H/4aaSbSxLS7tA6sSm3t0xrbHafX4HxVZGg0QY0nShKkNt5J18KHJVstz99PW6pi78TkE8BBo9mKAZCGKAbKttd9RaF1vmzASsPq1avZfffdef/73w/ADTfcMDh2zTXXAI2Dn7RNm6xMzJXCjJVKXedCw6B47cQ+q0lCwX2YchS27JNWSe4jVlAyJObAVmDWvfqx22tJLuXc7t8RaJzRlXQtGk9UdXYcdF/SvttShfvkWgBXXHHF0LiOOOIIYNhxVu/US17yEqBJi2+dP5czJf40MT8/H4ai+oq7WkNt1WuxjJpXHwIMoyG1OmbXFzEEUckU34+Xl0j+2pKTqb1/ryL20cu4PcczO9F4vIXAhzTbNjYsGYad1j2DovuM3hnJf/Qd6u/ZhyRHbSJMwhgmk5JIJBKJRKKTmEkmRbtJ7dR86mF7LAqf1e5T6cK1w5fmA03qZLUV22J3rtKQfFhZ5Jeh3alsnVZDkOYmDUyQrwuMFuuTpqGQPX9daHbJEeviU1RbXwhbnA6a1N1R2QCN3TMqiZ6cPvTQQ/zpn/4pALfffvvgmBgBJfyS/fjtb3/7oM0JJ5wANKGaX/jCF4BhrVvajnw4fNkDC6+1tNmGI43Pa4W6RqQ1S84lMzY1vHxPDjvsMKBhLS10TL4JYhyiJIjqO2JLxiWni/wGvOza//07rmvZ91ifnX/++UCTHl/vDzTPW++YGCf7rm+//fYjieq6jlLKoMggDK/J+sz76NgCqpoH748RheH6cN7oOfnElpEPiPeZiBiZNh8t/45EIf7e3yRi9rRue/mzc6h+lA4/+q7x4xGbamVL8yv50m/r++W/M30SPntdzxAthR9iMimJRCKRSCQ6iZlkUrzmY7UZX5pdv619WcyCoiSU3E2e5TBazjvyuRB84iqrfYod0RgjnxR9Js008qb2Pi3SWCMbvffZsUmypFlojDpm05bLVqxd9j/90z8Bwzt73asfs/V/mbUIhWljfn6eHXfcceBbYp+Vohb0XDXndv6k3XzmM58BmmKCth8bcWWPRVrPJAnCIr8OwWuVvsiYbSM50/hsFJruSxFvSqVv+9F8iHWRnEalGaJS8uPupy2RnWdLIhZJ7798Zew7oeRtutfPfe5zwDCLpMKJinCRr46NYnnggQcm8qHpGubn50P21icD0z3bqKdxpRsiXwk9J605Yu3s+Z5BafOP8FE1MJrsLPITGeeTEvlu6H1sS36peRKrbZkVv6ZH8uz73HPPPYFhP0qfHFHyaNkWrftibPWcIouF7stH3PqxWWR0TyKRSCQSiS0CuUlJJBKJRCLRScykuUe0mA/Zgoaq8g6q1jFIzqaqMyKnPFuJVOHIospEi1koaZqvLGnpR9G43qHRhiVqjKK21daaltR3m4OqKDcdiyqSas58GJ8d86677grArbfeCjTVd62ZQfOs+RFFaa+10s0969at45FHHhmEV9r5kDPaK17xiqFjb3nLWwZtzjjjDAAuueQSoJnbH/zgB4M2kn3JjDUtCG3mEGFc0rPoGfr6WJZO9k6I3snW3ofeSVHNVqYlj5JFvUfWUdwnepskmVubTHqnWLuu6J5Ft/v6KLa93i2ZhCIzm5x+fU0gXctXMu86SinMz8+PVPSFUROkzAfWyXKc86ltEznTQlzl3dfBsfCBF1G9t3Hh9v6eozFHIcjeTcDeg0yZ/v1sC6WPHIJ1TGuzD7KA5nvEm0/1nkGzvii0XzJu51LP11/LYlrrfzIpiUQikUgkOomZZFK8E5PdSUuj1y5OOz3ryKXQrH333ReAj3zkIwCcffbZgzannnoqAJ/+9KeBxtnL9qOwT+22tbu1Tov6W+PQ/5a58CnutXONwhC9A1akcak/HwYKzQ5a2oz6U7ir7fvCCy8cuneFbEOj0XoHY+vYGGkxKw1zc3MDLcomC5RTmxK0KU26nTOFHHuWxGpl3qFb8mllR8+4LT31JMnc/DWjZFqC2APJib13zwbqmNW85Oh+zz33DN2XvZZPXtjGpEwCv67Y90YaqE9WZscjR0PdexSWqXdS761PBGmvNUvYsGEDTzzxxOCerfauuZIcR/MSpYuHuIK7T2xp3xmf9Mz3b9v75x2t2wt18vTwTrmeYbTX92kzrPx52fbVkG3fkqUotNkfE3tv1wuxvLq+5DmaZx+gYuXYJ8LTPdv7miThWzIpiUQikUgkOomZZFKmBWlnsr1dfPHFg2NnnXUW0PipyC/A2lq970cUhuWPaQdqd5NiITSeKMWwx7gEQNCwSUoQZlkbafBK1COfCJvMTbb0r3zlK0BjL7f3rh2wtL7IFq37mCT0dUvFhg0bBmyC1UTk46S5lmZt24g58SyeTeYmjdEn1bOIwubHwTMPUSisv0ak7UYFMAV95otdWhbO+mxBc396V2FUI458SRZSYDBKxuXhWRYr22JAva+CfY+9luwL0OnYQp5ZlxCxEl7bjlg6z4pEa2C0vkLMnEVMg4f3o4hYk7ZrebQd8+/RJEU+oxTzkySy8/cVfY/44ozReMRm+jQc0Xja7mOxmGiTUkq5G/gxsB5YV2s9rpTyLOCzwH7A3cDraq2PjusjkZgVpLwnVhJS3hNdxkKYlJfXWn9o/n8HcGmt9X2llHf0/397fGo3oagC7TQ/9KEPDY697GUvA5pU+fJ4vvHGGwdt5NfhowwsfPKeNm9x7U6lTbQlnvJFsmzf0iLabL8qZKfflkl597vfDcAdd9wxdI6NrPA+P7q21Y7Eskxid+wgFi3vpRS22WabwdxYdkBsgj6L0ol7lkSMmO3H+z9EGvg4hqBNvtq0oEm0J/2W/Nt3xPuJKdLF+mLovtSPTzAFjTz6KL+ISZkEm6Id2vnWc/EJGyOmyV/DJ+7aDJFxi5b3DRs2DOTYRvl5diRKguZ9fSYpWNcWcePX2bakZ21ROeP6H3f9cZgkbbxnPCyzOC6CqM23pe1avqxDxEZZBt6PJ/LJ8tecFpOymG+Ps4Dz+3+fD/zi4oeTSHQWKe+JlYSU90QnMOkmpQJfK6VcX0o5t//ZbrVWJQ95ENgtOrGUcm4p5bpSynWzmOo5sSIxFXlfjoEmElPAJsm7lfVZ9aFJdB+TmnteUmu9v5SyK3BJKeVWe7DWWkspIfdVaz0POA9g9erVncrupVBk1RBRGCjAxz/+caCpSnvccccBTQI4aJwdfYVkS3WKpvYhjJbWFx3aZhLyjpFRvQnR5+pbYYC2jcZxzDHHAHDwwQcD8PWvf33Q5lOf+hTQhKdFpiWNZ5yzlr13XwdjBjAVeV+1alXdbrvtBmZFa86QjPhETlG9GJ2n5IGRI7JkJjoWheoH4279f1J42r7NkVJO3ApBjpwAFeavY5HDuWjotrpDk8BT6W3mMF3D3pfeM5l7vLnOnu/fF/sl76uZLwM2Sd6trD/jGc+oEJstvQknCjf2zrWRiXicTEbmbI/ILEEVXYwAACAASURBVLKxfheKttpRbc6sfjxenmE0bD8ymfk5VFsrTz4E2idGtdfVM/QJDKMxt5ne/P8LTREwEZNSa72///th4PPA8cBDpZQ9+hffA3h4kr4Sia4j5T2xkpDynugyNsqklFK2B+ZqrT/u//3zwH8BvgicA7yv//uipRzoUkC7WTnj2dTAH/vYx4AmBPm0004b+h/giiuuAEZ3/zbhm7Rohfz60Ep7vkfkcOe1YcvaiLHwafptFWRpr/vvv/9QP9Zp2Ffh9EmzYHziIXsvUcXnrmOa8r5hwwZ+8pOfDOazTePT/FmNxjvMRpW0o/TYHm0MyqbAa2oWnhGSLNp3QvKoVPe6Z8u4icW79957gYZpsLKsd2laZuSIHRHGOazb+9L9eAfcKCWBTxVv5eHJJ5+c+jMbh2nJeymFrbbaanBfEZMyjmWD8WHKkzizRtiU0PO2fjb1/HFsQgS/xkcMiO8nWlN8mLKdZ8/Ajwvr9ueNu5a/ZsTITDI/bfM8iblnN+Dz/c5WAZ+ptX6llHIt8LlSypuAe4DXTdBXItF1pLwnVhJS3hOdxkY3KbXWu4Cjgs9/BLxyKQa1XNDOUOGRlkmRP8UHP/hBAF7+8pcDcPzxxw/aKNnW9ddfD4z6aUCjMfmCTnaX6lmJyLbuNdSogJauIQ1TKevtfZ100kkAg6J373jHO4CmiCA0Gq38ATRmq8H7AlPS6KPCYrPkVDdNea+18uSTTw58SSwLIPZOMiRNyWorYsIknzrHPnM9Gx+KHMnOUtreBS/DGo+9d8ml2JLonZAc+aRpts1SOeJHGqCfOz0ny6QoJFqsqS+2GJ3v/TX093IFGUxL3kspbL311oN33jK8PlFbdM/jZHQS5iEKOfclOSZhYdrClCMsJsQ28svwzzzy4xIinxTP3EWhyDqm9ylK5qa509oe+bnpO8L3Z9Pre9+qSfxWIsxkAotEIpFIJBJbPlZ0WnztIrX7F3MAje+GIn7+5m/+BoBf+ZVfGbQRKyEN9+677x76H5pdrPwKfCp920Y7zbZ0+F5TtW2lfWp3euyxxw7dC8A+++wDNFFKH/3oR4EmqRs0qdp9JFKUFn/c/9CwKzOazG1q8OwXNDIntsR77UMz//IJknza5yANRlqLNFhbeHKS6B5hEs3Ga3yRz4XGIaZB/hrQRPMoGWLkb6Uxi22JIqSWCm1MpversIyBn/soskOf+bIWVltdv3795kjmtiiUUli9evVIIknfBtqTjHntO2Kc29aTccnOFpqccJLzFoJJGCLv2xgVaJ0k9b5nJtsSh0Yspo82jRgZ/52l9zJKNNk25knWppX97ZFIJBKJRKKzyE1KIpFIJBKJTmJFm3tEZ0UOngp93G+//QD4gz/4AwAOOeSQQZsTTzwRgFNOOQWAb37zmwCsXbt20EZ9RpVeBU9RijK1dJ/oZV8TJaLpdt99dwD23XdfoKk/BPDww710B294wxsAOOCAA4AmsZ3tx1Nxlmr3oZjekQoah0/rNLmSoNo9MtPIZAGN+U/OljIRWNpTMiN50NzKBAINxdtmWtsUM89C6HFrctS7pN+6TzkPQ1OrR3RwVN1Z8q3zVNHb0sk6zzrrbWzsk5hR2pxWda/+HbHneadYaxLyzrT63649s2bqgd6cz83NhfI3bj6jFAveROFrGkEzn22h4lHCuHFtN7WG1ULg1/0okd0kDu4+GVvU5yRJDb2M2mtaUzE075ntz5tdJb/280mSEqbjbCKRSCQSiZnFimZStHv80Y9+BAxX+ZWWJw1OO9i3vOUtgzaf+MQngIapOPXUU4FhBuS663olXHwYnq0K61NJ+3T00IQ1+gqVtnqxxq8KzkrYZtP9v/e97wWa0Ffv+ASTadVei4nC1FYqgyLUWnniiSdGtG9onGF32WUXoHFulixCw0ZobiUzVk41x9J+1K9FW/I1O9a2/2HUkU6aVVSaQZ9Jm7IMiMYqVi8al85TW+/MB+OdaBfLREQarb93+94JcpzXfEea7LgKtfb/VatWzVTYPvTmav369YP7s89G65rkOUpyp/vVWiiZt7JlGSnbT1ugwSSIHEyj5JTTuIZg792HUkcsjme12yod+zBse22xjm0J37zjt47Z76xxbHv0PdDGlkzCtiSTkkgkEolEopNY0UyKdoPaMVrt5cc//jHQ+HeoCOEPfvCDQZv3vOc9APzJn/wJAIceeigAp59++qCNfFq+//3vA3DfffcBDRMCjY1e2pnCNa02cs899wDNblYJsQ4//PBBm8MOOwxotGsxPfptxyGNN0oiJs1kMxQ62+JQShkk07MahZ6D5l2+FzZhnvyEolBEQe0lpw899BAwzFxsSor1Npu35Mvbte1nkm8xRZZ50Lv1nOc8B2jeO2sLl+zL10nskX0nvO18WohCQMUGeAbT3rveF89cWUbFsysRG7Bq1aqZe/dqrTz11FOD5xOlR9e9trFEPtTbPgMfghyxCOq77Z3x1xr3/zTh2Uc7B/p7HKNi//Zh7VFaCM29fkcpAjxTZNuMS7oXhSD7Z7AU5RySSUkkEolEItFJrGgmpW3Xrp2mIjKiktY33HADAG984xuBJsX8L/zCLwzaHHnkkUDDcvgU59DspMW6eNsrNFqjT6JjtUmN7W1vexsAX/7yl4HGnwUaBkafSfOxmq7Gs5SaxUrA/Pw8O+6444ANiJKD+Sgty6R43wg9e2v3lcyKsdA5YlTsNbwPx0LKq9u/dU3vfwKNZicfG5VfsBqX/Lx84Uory/pb74JYFwvJcOSHsxhEmrq3wUfs6ziNOIpQ8efbZ/P000/PXITPhg0beOKJJwbrpX0mYt6iSBLB+zaorZ27Nl8Lwa+PbfM47YRtbfDvcptMqG3EwOndj2TLR+FExUc1r21s1rhij1GBQe8P1JYYL3omGd2TSCQSiURiZpGblEQikUgkEp3EROaeUsrOwCeAI4AKvBG4DfgssB9wN/C6WuujY7roJERZycnQmlkUBqyQLYWGWnpLbeQM+zu/8ztAUw8H4Ld+67cAOOuss4bOsbS+d2IVpScHQzsOHVPV4i996UuDNtdeey0A999/P9CYqmzdFN2r6NgolFmmAjvGlYRpyfv69et59NFHufLKK4FhKlTPUXTnnXfeCcTOyt6RzZpFJLMy40lOrOx4B/E2TJLESg69kiFLOetvmWL0blhzhj6TXEb0tubB37t1CJ62mcePI0qwpufmq1fb9r6fSSjwyKyxXJiGvNdaWbdu3cCcbeXPm8pl/rEpCrypInLA9Ga4yHygYz6M1t3vUNu2xG9LZQpqq3Cvcdm1QLLlw9vbEuLptzUPa16842xkgvH3br/7xjkmT5JkbmPtPSZlUj4MfKXW+jx6Zb3XAu8ALq21Hgxc2v8/kdgSkPKeWElIeU90FmVju/ZSyk7AGuCAahqXUm4DTqm1PlBK2QO4vNZ6aFtfq1evrnLw6wLk5CdHPssm6G/tYLWrtdqVdqH6TKxEFJYoVkL3b9OE61rSzrTbfeCBBwZtpJn6XbLVOLxjmk/BDaO79miXG4Ulb2788Ic/5KmnnlpyD7dpynsppc7NzYWatHdOi5IgjUv7HsGHOFosJqS8LZGfjkVOgD482d7fuCrKkzg5LiXLsBzXWAhqrTMj7zvssEM9+uijOe644wB4wQteMDimatdaA7Xe2fVWzuViV7SWWo1dz0frduSIqzZicqJkZT6xpmdUlhLR94hfb9sYEMHPBYw6xYq9tOuH/vbhxREj6JlKO2alxFCy0quuugqANWvWDNqI9WyrdGzWputrrceNNGAyJmV/4BHgr0opN5RSPlFK2R7Yrdaqb9EHgd0m6CuR6DpS3hMrCSnviU5jEp+UVcCxwO/WWq8upXwYR/3VWmspJVQ/SinnAudCtzRzaHaaPjkVNDtO7f5kV7W7be3WxYrIb8XuOOWDoh2jUmfffPPNgzY+ZCzyW/HXV1u72/ZahFgbq0H7om6aA2vrl4bTVqBqC8bU5L3ftpWtakt+JBn0ml/kA+LfLfvsFqMhRlrqJCnbfUIpC2l/44rK2fN8CnV7n5E/x2KwWAZlWoxVKWU5371Nlncr66tXr2bdunWD9cSuS+PW0ih8W+f7FPrQrFF6D7RORgUcvYxGjOC4hGRLAS/HUQJEz25HPlq6r8ivx4cpC1EaAbWJWBtdyz83K9fyPRLb0rYmjGNOJ8Ukq9d9wH211qv7/19IT6gf6tOA9H8/HJ1caz2v1npcrfW45aDTEolFYmryviyjTSQWh02Wdyvrk2R4TSQ2BRtlUmqtD5ZS7i2lHFprvQ14JXBL/+cc4H393xct6UiXANo9KuW21aS0U/SphWU7hWY3LJ8WpT+3L6yOKXmbklLZ5FRiYJTaXNdUdA40GoZnVOzGT+PR/WgHrGgMaLQRsSyyF1ttJPKPWCmYtrxHJdmheTbeZm6fp+TAsy62n0nYjcU8z0gLExMSRVd4diNiBBaSzr4tUmY5lR6v5fpCbxBHZdhzYDxbs7n8YKYl7+vXr+enP/3pYM2yxeg0V5IbsbiWKfZJDaWhR/59kgGtibaNTzjYlmI+OuYxrefi3/OIEZwkmsYnc7Pvw7gEdlGhQp/ozUbf6XmpTcRO6fmqbRQR5O8rajMJYzhpxtnfBT5dSlkN3AX8Jj0W5nOllDcB9wCvm7CvRKLrSHlPrCSkvCc6i4k2KbXWNUBEX79yusNJJDY/Ut4TKwkp74kuY0XX7pGJQ7SUDdXSMTmRimazNKbOk+OszCqWzpJjk/rTNSx1JvpTIcf639J9MuF42i+qHOvr+uhcgL333nvoPpT4zdKPCv9bioqWKw1zc3MjNDWMJrhaiKNklLzKPyvrUCcT30JCbCNqNqKGx8HXIopCHNvCpn19lshENG3n0kmSTo2rYgzjzVgLmW/93ZUw6ElRa+WJJ54YyJpN5qZ58TWfrIlZz1mfqR+7dilhoZdNO1c635vlImfmtiRu00ZbkkRvIm2rC+VNivZd9ObP6FrjHNHtub5WWFRN2beJnJD99SMH+Une4fRkTSQSiUQi0UlsNJnbVC9WyiPAT4EfLttFp4NdyDEvB9rG/Nxa62gp3A4j5X1ZMWtj3th4Z0re+7J+D1vec+gitsQxj5X3Zd2kAJRSrpu18Mwc8/JgFse8McziPeWYlx6zNt5JMWv3NWvjhZU35jT3JBKJRCKR6CRyk5JIJBKJRKKT2ByblPM2wzUXixzz8mAWx7wxzOI95ZiXHrM23kkxa/c1a+OFFTbmZfdJSSQSiUQikZgEae5JJBKJRCLRSeQmJZFIJBKJRCexbJuUUsqrSym3lVLuKKW8Y+NnLD9KKfuUUi4rpdxSSrm5lPKW/ufPKqVcUkr5bv/3Mzf3WD1KKfOllBtKKRf3/9+/lHJ1f74/26/L0RmUUnYupVxYSrm1lLK2lHLSLMzzpEh5X1qkvHcLKe9Li5Us78uySSmlzAP/AzgdOBw4u5Ry+HJce4FYB7y11no4cCLw5v443wFcWms9GLi0/3/X8BZgrfn//cAHa60HAY8Cb9osoxqPDwNfqbU+DziK3thnYZ43ipT3ZUHKe0eQ8r4sWLnyXmtd8h/gJOCr5v93Au9cjmsvctwXAacBtwF79D/bA7htc4/NjXPv/kN/BXAxUOhl91sVzf/m/gF2Ar5H33HbfN7peV7A/aW8L+04U9479JPyvuTjXNHyvlzmnr2Ae83/9/U/6yxKKfsBxwBXA7vVWh/oH3oQ2G0zDWscPgT8IaBqTc8GHqu1qqpW1+Z7f+AR4K/6FOYnSinb0/15nhQp70uLlPduIeV9abGi5T0dZwOUUnYA/g74D7XWf7PHam8b2Jm47VLKmcDDtdbrN/dYFoBVwLHAx2qtx9CrbzNE/XVtnrdkpLwvOVLeO4SU9yXHVOV9uTYp9wP7mP/37n/WOZRStqInwJ+utf59/+OHSil79I/vATy8ucYX4GTgtaWUu4EL6FGCHwZ2LqWs6rfp2nzfB9xXa726//+F9IS6y/O8EKS8Lx1S3ruHlPelw4qX9+XapFwLHNz3SF4N/Dvgi8t07YlRSinAJ4G1tdY/M4e+CJzT//scerbMTqDW+s5a69611v3ozevXa61vAC4DfrXfrGtjfhC4t5RyaP+jVwK30OF5XiBS3pcIKe+dRMr7EiHlneVxnO07ypwB3A7cCbxrczv3jBnjS+hRUDcBa/o/Z9CzAV4KfBf4R+BZm3usY8Z/CnBx/+8DgGuAO4C/Bbbe3ONzYz0auK4/118Anjkr8zzh/aW8L/34U9478pPyvizjX5HynmnxE4lEIpFIdBLpOJtIJBKJRKKTyE1KIpFIJBKJTiI3KYlEIpFIJDqJ3KQkEolEIpHoJHKTkkgkEolEopPITcoiUUr5ifv/35dSPjKlvi8vpRzX/3uHUsrHSyl3llKu7x87oZSypv/zYCnlfvN/p6piJmYLpZT1fTm6sZTy7VLKi5f4er9oi9KVUv66lPJ4KeUZ5rMPlVJqKWUXN8bvlFL+31LKzv3P9yulfGcpx5tICKWU3UspF5i1+UullONLr9Ly6n6bA0spd5VSdiylnFJK+de+7N5aSvnvm/seuozcpMwOPgH8C3BwrfWFwG8Cu9Raj661Hg38Bb2qmEf3f57anINNzDye6MvRUfQKxv2Jb2AyXk4Dv0ivgq7FHcBZ/WvN0cu2aTNraoxH0Hs33jzF8SQSG0U/QdzngctrrQf21+Z3AlsD/x/wtn7T/0Evf4zS8F/ZX7ePAc4spZy8zEOfGeQmZQlRSnlOKeXvSinX9n9O7n9+fCnlqn7xpW8qM18pZdv+jnxtKeXzwLb9zw8ETgD+Y611A0Ct9Xu11n/YTLeWWFnYkV45ePpa4JWllC/SyyJJKeXXSynX9DXDj5dS5vuff6yUcl1fo3yPOiulvK+Ucksp5aZSyn/vszSvBf6ffh8H9pteAPxa/+9TgH8CVFTN4yq6VWQtsTLwcuDpWutf6INa64211iuBPwJ+u5Tyh/QqFv8vf3Kt9Ql6SeVSdsdgmprQSsW2pZQ15v9n0aSE/jA9duMbpZR9ga8ChwG3Ai+tta4rpZwK/N/ArwD/B/B4rfWwUsqRwLf7/TwfWFNrXb8M95NIQCPX29Arq/4Kc+xY4Iha6/dKKYfR20icXGt9upTyUeANwKfoaY7/0t+0XNqX6fuBXwKeV2utpZSda62P9Tc9F9daLwToKajcTq9uyTOBs4G/AU73A+33/0p6Kc8TieXEEUBY/K8v1+8DPsooSwhAX7YPBq5YshHOOHKTsng80aftgJ5PCnBc/99TgcP7Cy7AjqVXgXMn4PxSysH00jRv1T/+MuDPAWqtN5VSblr64ScSIQZyXUo5CfhUKeWI/rFraq3f6//9SuCFwLV9Od+WpnDY60op59JbZ/agt1DfAvwM+GQp5WLg4o2M4+/p1Sw5Afjf3DFtpPYC1gKXbMqNJhJLiNOBh+jJ/m3m85eWUm6kt0H5UO3Vu0kESHPP0mIOONH4iexVa/0J8F7gsr4t/RfoaattuBk4SjR6IrGcqLVeBewCPKf/0U/N4QKcb2T80Frru0sp+9Ozx7+y1nok8A/ANrXWdcDx9Cqjngl8ZSOX/yy99+USmToNtJF6bn8c6ZOSWG7cTG+TPoJSypn0FNJX0TNlbmcOX9n393o+8KZSytFRH4ncpCw1vgb8rv4xgrgTjQPgvzftrwBe3297BHAkQK31TnrFmt7Td9RSBMNrlnLwiQRAKeV5wDzwo+DwpcCvllJ27bd9VinlufT8WH4K/GspZTf6ZhoxibXWLwH/F3BUv58fA8/wndda7wHeRY8yD1FrfRz4PeCtU3bmTSQ2hq8DW/cZQwBKKUeWUl4K/Bnw5lrrP9Or+Psuf3KfkXwf8PZlGu/MITcpS4vfA47rOwjeAvzv/c8/APxJKeUGhk1uHwN2KKWsBf4Lw7bO3wJ2A+7oh1f+NQ2tnkhMG9v2nVjX0GMzzol8omqttwD/Efha3zx5CbBHrfVG4AZ6/lefoef0Cr2NyMX9tt8Afr//+QXAH/SdyQ901/h4f6M+FrXWG+hVXD170243kVg4aq9C7y8Bp/ZDkG+mFwn3O8Dn++8HwLuBs/smfo+/AF5WStlv6Uc8e8gqyIlEIpFIJDqJZFISiUQikUh0ErlJSSQSiUQi0UnkJiWRSCQSiUQnkZuURCKRSCQSnURuUhKJRCKRSHQSuUlJJBKJRCLRSeQmJZFIJBKJRCeRm5REIpFIJBKdRG5SEolEIpFIdBK5SUkkEolEItFJ5CYlkUgkEolEJ5GblEQikUgkEp3EojYppZRXl1JuK6XcUUp5x7QGlUh0ESnviZWElPdEF7DJVZBLKfPA7cBpwH3AtcDZpjR1IrHFIOU9sZKQ8p7oClYt4tzjgTtqrXcBlFIuAM4CxgrxdtttV3feeedFXDKxUvHYY4/x+OOPl804hJT3xLJh1uS9lLJp2m4i0cMPa63PiQ4sZpOyF3Cv+f8+4ATfqJRyLnAuwE477cRv//ZvL+KS3UYpo2vKJEyV2kTnJ3r4y7/8y809hJT3xLJhFuTdynoisUjcM+7AkjvO1lrPq7UeV2s9brvttlvqy20WbNiwYexPrXXoJ0IpJTcoWwhWgrwnEjAs65t7LIktF4vZpNwP7GP+37v/WSKxJSLlPbGSkPKe6AQWs0m5Fji4lLJ/KWU18O+AL05nWLOFVatWsWrVKubm5jb6k5hZpLwnVhJS3hOdwCb7pNRa15VS/k/gq8A88D9rrTdPbWSJRIeQ8p5YSUh5T3QFi3Gcpdb6JeBLUxpLItFppLwnVhJS3hNdwKI2KYkeNmzYAMSRPHKIbXOM1bFNzVmTSCQSicSWiHSSSCQSiUQi0UkkkzJFRGzJJKHFyaAkEolEIjGKZFISiUQikUh0EsmkTBFtGWczq2wikUgkEgtDMimJRCKRSCQ6iWRSpoA2lsRH/szPz49tm74piUQikUg0SCYlkUgkEolEJ5GblEQikUgkEp1EmnumgB133BFgUJtn/fr1g2NPPvkkAE8//TTQbhJKp9pEIpFIJBokk5JIJBKJRKKTmEkmRYyDGAs5owKsW7cO6FUmHodxYcFbbbXVoM1TTz01dExsh61krL9//OMfD/UXVTv2qe+tk6xnUHQtew9qr2N+DNExnWP7UZtddtkFgB/+8Icj4/Hj8nMAzZzrs2jMfjyJLQNtcj7O+dvKuJdlyYzeXd8eGnmzLKW/vs5fvXr14DMxmGq7lCUosrzF9GHXdvvsoXmm0ToTyZSHnpf6sc8t167uIJmURCKRSCQSncRGmZRSyv8EzgQerrUe0f/sWcBngf2Au4HX1VofXbphDsPvoO2uV2yIZyzsLly781133RVo2ASxJ7ZNm9YoLU3XjHxL/O5fO3z7+SRao6619dZbD/Xzs5/9bKRvr9HpXNv3o48+OnRshx12GLTZZpttAPjXf/3Xofuyc6Cx6Vq6tn0Ws5jArovy3jX4d8E+cy97kZbqGT4vS/aYf8cjbVfXiDTrcbIXMTuLxSwyKF2Td7+G+fXTQs/ZMmdai3/605+G/dq+xbK0XSOx+TEJk/LXwKvdZ+8ALq21Hgxc2v8/kdgS8NekvCdWDv6alPdEh7FRJqXWekUpZT/38VnAKf2/zwcuB94+xXG1QjvgSHMSU/D4448DzS77mc985qDNv/3bvwHw0EMPAaO79+ganlkB2G677YbGpTaRHdVrlnb3rmPa/Wsclt0Yt9u3Wq1YFkEsix2P8MQTTwzdg+YLmogkQYzTj370o5Ex+/ux45lFG30X5b1r8AyZfW8meeb+XWpj6vw1I58nP56INfU+BhGT0sb4+WOzJNNt6Jq8t/mQeD9DtbUMuP3bos3HxDNx9u9x/SWWD5vqk7JbrfWB/t8PArtNaTyJRBeR8p5YSUh5T3QGi3acrT2VYqxaUUo5t5RyXSnlOqutJxKziJT3xEpCm7xbWV/mYSVWEDY1BPmhUsoetdYHSil7AA+Pa1hrPQ84D2DPPfecCkfaFhYsU4UNJ4YmTNieJypY51hzyfbbbw+MOvVZOlLH5Hwqk5J1ZtU4dJ6+uNQ/NGaek08+GYArr7wSaEwy0Jh+dA2Neaeddhq0efjh4cfwnOc8Bximpn/yk58AzZxFSeZ0TGP+l3/5l5F79zR6RKvPouPsGGxWee8avFO6ff+8GSQKufcO5pId2483t0b9j+snMv8u1jyzpZh3JsRE8m5lvZQylQnSemmd/QUfYi4Hf7u+6Hlr7dQa3Wbuidb2RHewqUzKF4Fz+n+fA1w0neEkEp1EyntiJSHlPdEZTBKC/L/oOVHtUkq5D/jPwPuAz5VS3gTcA7xuKQc5Dm2Os+M0OnuedtDPeMYzhn7bfsQ8qO222247aKO/77//fqBhHLTDB3jssceAZkcvLUAhwPZaV111FdA4iFltQmyLwoJ1bevkqn7Etoi1UeI2Ow5pLBqPnR85yKq/SKvV3+r7kUceGeknCj/tOros712BD5G3mqxnNyNnVq/VRo7dOt8zkVaWonB+e67t2zvZRikF2jBLMrwQdE3e9Zwjdk3PsM2Z1T9Xn5LCXsP3uxRh6YnFY5LonrPHHHrllMeSSGx2pLwnVhJS3hNdx0ymxY9SsAvez0Rt7A57jz32AEZ37daXxPtheD8N36ftxzpMent5lLbfjyMK5/XjELMSlQTwodXeVwUanxixNZb9efaznz3U94MPPgjEdl2xLppTsUqQ2siWCq+JRiHIkb+YILn0IchRqYgoYaPg35coTN8zMOPKS0RjjeQ3ZXpp4efXPhPvpyKWZM899xx8Jmb3BS94AdDIiBhtgLVr1wLw3e9+d6hfey2lZrC+jInNg0yLn0gkEolEopOYSSalLZ22Z1C0M7d2TLEG8gsR89CW3luwEUBeS4u8w8clgbL9BxubfQAAIABJREFUeo0wSjGvXb4YEGkR8lGx53tfkCh1vkoB+CKJ9hoa1wEHHAA0/jkw6oPygx/8YOR+ZzGZW2Lj8IxDVOJB2ql8p6LIML1Lemcjedd7GyVc9GUpfFFQf12LtoKaUZuU4eXBJOzYQQcdBMCpp54KwHHHHTc4pojGZz3rWUAjR1rjAa655hqg8QEUoyL2HJJB6RKSSUkkEolEItFJ5CYlkUgkEolEJzGT5h4fRmtNOfrMm4KOOuqoQZsbb7xxqG1UF8Q7uIqKts5b45xibSI5n0woCsuVecXX7rFt1I9oSCV3s+NRP0pkJLOWdeTdeeedgcbhVSHINnGczDq61t577z10jr2++o7GnBT5lglR6XrvbMVZmXAk5zvuuCMwHHKvd0Fmnui98akEJG/W1CRnSMl55Aw7LilchLaEX4nlQVtFYpl5zjrrLABe+cpeAJJdt++55x4AHnigl9VfjrQ2vcQJJ5wAwF577QXArbfeCsB11zWJc+Vcqzpvic2HZFISiUQikUh0EsvOpMzNzYXajQ85bGM35BwlzT5qo8q9cobSzti3j65tx9ZWPVXwLEnkrCctMdLWpInKyVCOrrYKsmdQ2kKZ/TWthiqHV92HtGGbpM462kITVmzHvv/++wPD8+oRhVJDnJDLOyG33deWiLYSAj4hWpQG3Mug3hEYdhq017LwzIVP0gdw6KGHAvD9738fGHVSt+eLbTnkkEMAuOmmmwZtrFYLjfxbeVdYqfoTa6JweGg0YR0Tq2irk0t2/DtuxyA20DviRo703rk9coDXNXW+2Ep7Dd9vlLRsJcJX1rZz8Ud/9EcA7LfffkAjNzbtgZg7PV8xxDYNg74b9Fvyc8YZZwzavPjFLwbgIx/5CBAzclHoPAync9Ba6tnyCOMSD9pjfn2I1sZx313TxHJcY3CtJb9CIpFIJBKJxCZgWZmUWitPP/10mIRN8Om07U5RGo7s22pjU8NrBy2WRUyB3d1O21dinJYFzU5TO2olPbPhbj6EWf9b+6yYDt2PfluWxBcLlBZhNVTt5KXdqZ82VkvHbOK473znO0CjISgU2s6z97+JEnONu4b1M4rSpm9paCvCqPnz/lYwOqdqK5s8jE8fbzV8PTc9T71ju+2226CNnvHhhx8OwG233QYMh+WLQdH5Yl3kTwCNLIuFEyOifgEuueSSofuRn5RlIlT+QdD87LvvvoPPvve97wENMyTWxCb3knx5HzU7X2rj5zJaS+T3pTloSwApRCHaKxE+RcPpp58+OLbPPvsAo+HJlhWTbOm5S8atrOs8zbnYFzE00DxDydtnPvMZYHjd9u+sZMMy0WrTxqBMkkRwXOmHKJW/5EfvtJUtP79taTN0jchPaDnZvmRSEolEIpFIdBLLyqSUUpifnx9J+ATNrs3v3qLU8L5ImC2gJ98Nr33anV+b/X9T4NP02/vyhfyURM1C9yotVjZ1u/vWWH2iNbtrH5d63zJNund9Ftk6dQ3NZWQjlfYi7/do1+6jNvScbJSQ+vSpqa3msxJ8UtrgtR7L1PnClV5LtOfrGYu5sLZ8PRsf0WWTBYrNEBux++67A3D33XcP2ugaaqNnrVIL9jPJldiXyy67bNDG+2lJs7W+NorKkN+LfG+UnMveu3xZJO+WrfDvm+YwStyoY95/wF5L2rbeEZsE0fcdpWTPqLhGxs8888zBZzvttBPQyI/mULJhIf8pzb2NXtSaqTUwKoKpv3/t134NgJtvvhkYllEf0eiLYUZthOh5T8JOSFY9Q2/hCzFu6vrZFTlMJiWRSCQSiUQnkZuURCKRSCQSncRGzT2llH2ATwG7ARU4r9b64VLKs4DPAvsBdwOvq7U+Oq4fYcOGDSOmnf51gFFqWk5N0JgWRLWK+rIJdzwlHlFpUUK1xcA78Frn0XFhuNZEpfNESbaFd4nei6o7a640H2pr6dBxDqrWtCQaX59F8yQa1YcQWxrd34do8KjarZ0ziE2By4Fpy/s0ETmcS770LkiG7HPQHIsu1zFbPVamEoWW69lbuZD5QuGcOmZDfn1NJ13bmoSs0yrAFVdcAcQmPm9ytDVV1Pcdd9wBNO+UdajVtTRPekesCcaaAmC0foy9vjdH23dU41cbXft5z3veoI3mTI7NulZkIl4OdE3eNR+aM5kmoVkntWYpIMDKn56lPpPZMXJGlrkoMvvrWlo7X/WqVwFwyy23DNr40P5JEIVWe2isdt2TvNnEnLYtNO+udQC250IzZ/feey/Q1FyzIdpRfTk7dju2tuR708Ikq/864K211sOBE4E3l1IOB94BXFprPRi4tP9/IjHrSHlPrCSkvCc6jY0yKbXWB4AH+n//uJSyFtgLOAs4pd/sfOBy4O0b629+fj7cRUYaBQyzJNrZKQmPr+Rr+9Fnvr+lhHbv1lFVu09podKurEboE07pmHXckwOhHBl9Sn5odsM+4ZtNSW4dGO017DypH2kRuoZ1ePXOWBGz41mkKJGWNFqxPtJGN1cY5rTlfRrQ/EmLsqyTL2ugObfsmeRBLIdkUM6xtr3aSB5sKLg0R89S2nd0XHI5y574Yz4c3l7Dz4GVU+/EGmm2km/1553L7Wd6pyIHb89A6nzL/ngNVIzIXXfdNWjjUwdEDORyOix2Td41z6eddtrQ/zAabq+5s0yY5leyIBmx7JqemV9DLYPlQ/FPPvlkAC688MJBG11D53lGzo8fFvZsI+d34cgjjwSapHP2MzGkUYoOvQdKDaBUEjfccMOgjRzq9T2kdScq07IcWBCPXkrZDzgGuBrYrS/gAA/Sowujc84tpVxXSrnOU1WJRJeR8p5YSViovFtZX7ZBJlYcJg5BLqXsAPwd8B9qrf/mksjUUkq4Ray1ngecB7DnnnvW9evXhz4hPlxVYYk2DbbsyWIstGu2Y/Hp3n1o5lJA99E2Ho1djIENHdPuVuf7+4Nm/NLydE3rMyCN2YegiXmy5/lkVDYtvjQCsRzqxz4vH9otDdeyJD6c9b777hv6HBpNwzM6UUK85cS05N0ds/0veEx6RlaWffisEplZVkHsm2cjrIb1e7/3ewD88R//8dA12+zQUXilZwZ0Lcv+6DMvO/Za3rcs8gFRn5JPtbX9eJ8EjdWySJor9S1myMqyzpNmHfm2eMYwCncWfMKszaWlmvEsWN6trI97HxYKzcMxxxwzcmwcm2Xnzr8PbT5a3p/OMs5ao5R8U+uulRsVJNR7GbH2baVSBM8atrVVUkT5yBx//PGDY5IbsZZe5mHUn+dFL3oRAM9//vMHbcSyXHPNNUBzn3a9WE5MxKSUUraiJ8CfrrX+ff/jh0ope/SP7wE8PO78RGKWkPKeWElIeU90GZNE9xTgk8DaWuufmUNfBM4B3tf/fdEEfbHVVluFCYx8cjLZxm1K91NPPRWAo48+GoD3vve9QBy54xmVqAjatOA1qMiOagu1QZzcqs22KY3Qp1e2GoLO9ym8LSMjhkq7Yh8tBM38eFtkFI3ltXNr4lCfuqY8ye2YvT+OtGO7a19O/5RpynvQ94KOeR+HKAmhtCZpemIe7TNXAjTNrdpYze8//af/BIxq9m1jjhKaiRHz5Rbs84zKLNjPodEKdZ76tedIdr3d37KUnn3SPduyAWJMxDhFbKdSskvD9v4wMFqEzvtO2PaecbJz2FY2ZNpYSnnfFCgyReyvZZUkUz55pvUl0d+SdT2vKOmZZCHyU/LrktbdF77whYM2F1988di+fT9tGOePad89raFnn3020DAf8p2B5jtG4xGrZFlMyfqdd94JNL5oBxxwwKDNc5/73KG2egbyX4FhBnGpMcnbcDLwG8A/l1LW9D/7I3rC+7lSypuAe4DXLc0QE4llRcp7YiUh5T3RaUwS3fMNYJw69crpDieR2LxIeU+sJKS8J7qOZa+CvH79+pBCFi0mejaiSr/97W8DcNFFw8yjNd94k8tyJALz1HhUmVJUparKWrrZU9ne8c72I4c9UXCWdtPcyVyk5F3WRKSwbVGlUfjnODOPHY/a6zPdQ1Th+Nhjjx3qV1QjjJqN7Dj8vW+JWGz9KO/A6U1s0LxDCi2U7FgHZsE7x7a9W/rf3oN3Ho+SPvn3ROOLKp77UF1L7ft+2mru+HfK3pccZW04sT0HhqvfQkOJ33777YPP/Fpz2GGHAU2NIdundwiOTF0rESeddBLQmBrs2uWTVEZJ97T2aS2UGdTWfJKDrA+3t/3oPF/PyTqqyhVBJldd08qxNym1VRT2AQI2jYASten6mgu7lurd0NypP2tq1RhV20jBDLbelb6jjjrqKCAO/7/++utH7mOpkGnxE4lEIpFIdBLLyqRAT4OJEpFpl+YdjazGc+CBBwJNSl8h0ka9lreU2rjXCC18ZWQlSrNp8eWwp112tNtW3955LNIatZOWpmx35NpV63yfTM1e3yens+PyDspRUiod+8IXvgDAW9/6VgA+8IEPDNpI85Fzl9iW5UyFv5Sw8m5l0DuoivWyVYcFaWw6FqVNl6OhGLq2cMFIq2tjR8aN2bMl9vw251E9a70Tcv6zDuM+BDlyLvSsSFvK8UlKYXhnX1uSQxq1riENNgor12dRskmvNUeMwbSqs28O6Nna9cSzYRG7JhZL7JPk166TChVXqnybDl/QO6J1UUnc7JzqXVOordZksWMwynTpf7uWio24+uqrgfg7rK3EiaDzPBNuWfJzzjlnqD//7tjr+mARG8ygcegamic7z5oXPUt97/78z//8oM2aNT33Jc1P9NyFtndvku/lLeObIJFIJBKJxBaHZWdSSimDXW2U0Kwthfo3vvGN5RrmguCTA9ldu9dao1TOXnOT/TtKiyyNS9ey/UhrUHhzpLFod+4TakXh4NLgfVp2Ox4/B/bedQ21/eIXvzh0D9F9aTyWLXj66adn1i9lY4yQ7kuaSMSkyIYuTSvy25HWHhUHk6xMKyleG9viGQ+1sVqv5Min9Leht54xVH+RT8q0ZMOvPTZxlxiqww8/HGg0SbuG6TyNR5q/1Xb1Lip1uU8kN+to05Z9IkkLyYLmXO+DXSvEYojFUhFCKxM2KSWMljywf6utrh29M77Mir2WGBl/nxYLea7+fMvs+KKBPjwYmjVALJS+T+wYtP7rPM2vZSh9Woqo1Ib8VeQnOokf1aa+p8mkJBKJRCKR6CQ2i0+KYL3pteuT17J2rnZnLC/qrvkreFur1Qhl61Mis4hF0pzo/vwOFkYjf3SOvZbmTrtjaaPWbyViTvz/aiOtXv3YZ6HdusYRJUSS1qF+lAxoksRV3l7dtWc+KWwZCHsPXrsUmxD5rfjIqTZfrojN85FYi4Xe2ygRoI9W0TWtj4zO13lelux5/n7sffn0/IuF969au3bt4JiKt33zm98camsTZen923333YHRSDoLRVWoH7sWRkzZrGBTGSGtk/KtkmzZ/vRclIxQEWxKXQ+j65renWgtFROi5xS18bJl/1cUzCTy5/23ohIQ3p/DsieanzvuuANo5C6KuPTfR9G6rbU5KiTq/cg0LuujpYjNG2+8cahthDaZmMRnZzZX/kQikUgkEls8cpOSSCQSiUSik1h2c8/c3FxI7Xhzgegom0TJV8rtCjzFaKkvUcCi3ESd2XsQ9afPRP3aefIVVX2VZ3td78hr+/HOS1GNFk97+zpIMOooFZkiPB2v860DlkxBupaoW/vcf/azn82sY+GqVasGcxyFz0qm5dAWzZ9PAGbhnZyjmhq+YvVi4cMyrQzKKVb3pWet+lS2vUIbZeaUSRRGkyC2JYWbNiITgZJdaZ5llhD9Ds08yxyhZ6M1AEafofqzFXh9UrlZQiRj3lQXrTkybWgOZZawpgqtFQoM0Bphw2cFzX0UGusTY9r6cIJfu3xSQGjMPW0htt6cEa2THpIR1Yuy4/CpBSJZ8e+F/X7SfHqzTzQezYHeQesArmrrcuDVOxyNo81hNs09iUQikUgkZhbLzqRArBV5JzPtrOxOOtJIuwDvxGp3twq9VApm7S5tKJtP+OZTKcPoTrMtuZVnOaKEU363bdt4p049L1u5Wc653tnL7vSlxWgHrt22vS/9rflQG9vP1ltvPbMJrqzjbHQPvtpvFGIr+VCIudXMpdF873vfA+KK1d6RbrHQNSJnOT1z3Ze0X3ttsSu33XYb0DgwRtXMo/sR2pK3bQo8c2iflxIjSpbvvvvusf3oGUZJHv27redu14xZDbeH+FlEYfEw/Ewlx4JkxD4Dae1K5qa1IioN4h23I6ZYa7Pkz6ZY0PomlsWzmjDssOuP+Xv0AQ8RI6i2eocsk6LxaKxytLf9+BQFPt2EvWfJs2foLdoYGc2LvhMmYVI2NWVAMimJRCKRSCQ6iY0yKaWUbYArgK377S+stf7nUsr+wAXAs4Hrgd+otW40dk5FBmFYe/A7VRWEssnKtAu0O94uoE2zlC3e+6TYtuM0uChU1ye1srtk7ysgtGk3k6Q/12+xQbZPvzuO0vRrZ68EVnbXLY1JNnlplja0czk1y6WQdyEqGKnnJ9m2fj8+/FY2eBsKeNdddw1dL0q0Nu3wbZ/oKgoTtc8Pht9jH/IpZsiOWddQf95fy/YZlQnYFHitO2Ig9Xyid80f07tg+5EGqjUsYoWXkzWcprzPzc2F7+q4RF/2PsWO6HytC5IVaBK96TwxK2IRYZSBb0sy5hlK+55ordPzitZLjXmS4oFt8OxKlPJe/lqaF+/LB6P+JZLHqMCg2kpG7fuqtUif+XUcmnmQX44tdDgOkQVlWmnxnwReUWs9CjgaeHUp5UTg/cAHa60HAY8Cb5qgr0Si60h5T6wkpLwnOo2NMim1t9WR0W+r/k8FXgG8vv/5+cC7gY9NctFo56mdmTy1xUDYkvNRyvAuQLtSn/oemnuVfTBKtuU1XfUTJfbytmyryamNj4iINLNxZe6jNlExQz/GiP3xGo/aSnOBhlVRW2kP0a59OTBNeS+lsPXWW4eFI30SL19EEJq51HliFy2TctBBBwFw7bXX9gYcRPJM4kG/EHjGMEoEqPuS3Ft/Jo1fLNABBxww0u8999wDjNrKLfPgk9xNCxFro7H5Z2Eh7VvjEmtq+5H2raggvROWDbJFKZca017fI814nC+CZQr2339/oFnPoig1afg+caHtR6ycGIcoUaBf+2y0oSCfI//c7XORT4oYhygJn3++kq3onfHzY98ZXx5CLKLtR+OQ/Hk20o5fc+n9IG0/ahMlu9P9RJFV/t6FiEmZ5N2diAcupcyXUtYADwOXAHcCj9Vadff3AXtN0lci0XWkvCdWElLeE13GRJuUWuv6WuvRwN7A8cDzJr1AKeXcUsp1pZTruuZLkkhEmJa82+JoiURXsanybmV9SQeYWNFYUAhyrfWxUsplwEnAzqWUVf3d9t7A/WPOOQ84D2DPPfcc6yUjGkp0d+R0pqqQNoFSF9DmnOWr+raFoHlnPEv3ybHUJ/ay8+PDGyPK2FOLUVt95k05kZOfp/CiOi4a+xlnnAHAxRdfPGijeREl6ZP5jbvucmAa8v7UU0+NmOpg1Dwms1eUwO/QQw8FGvOINffceuutQEPR+urWS4koiZXMVjLxiX63FWPvvfdeoKGK9b9NNyCqWSaTyHFx2vfoUwlETomqgiyFyzptyjQteY9MqTIjjAvLhd59bY4w5IXKu5X1UkodN2Yv/77qOzRmMMmxTGdyzIRRh1LJhq1W7WvJyNxj3z2/dnrTBzSmG10jWicl0xqzZCIyLbWZSL2jq8xPMoNatNWv83XZojFrPnyKALve6rvXz3NUAVptFpK4zWIqjrOllOeUUnbu/70tcBqwFrgM+NV+s3OAizZ6tUSi40h5T6wkpLwnuo5JmJQ9gPNLKfP0NjWfq7VeXEq5BbiglPJfgRuAT056Ub9zhNEdlXa7SjoDw1UhpwGvzUYJfzZFo2ljMIQoHNWzEg8//PBIn23j8gxImxObH9ckGmp0X37skeOsNBWF0dlxaZfuExpFSeqWCVOXdx92Co1m5cN4I4e622+/HWg0LOusJk1eMuMTidljXpOJHLO97EQJBf2zttfSO/3AAw8MHbOMg58PzYWdH/9uRpXBx1X03lT4d8v2q+vecMMNQOOwbBNu6Z79+dbh3KcQiJztd91116mFVU+Aqcn7/Px8mDhwXIXcX/qlXxr8rcrR0vSlqVv58w6q3okUmndDz0Isi5V1XUMO/LrGVVddNWijd8079lv5E3Om1Apar60jbpTkzI/HMx5R1XTPzskZW/cJTcI3HdM4LGOlY2JQdMwmiNR96X3U//Ze9Ex1723fR97pt+17JMIk0T03AccEn99Fz36ZSGwxSHlPrCSkvCe6jmVPi19rDUPzvO1OOyvbZtohyJOwJG1Jz6aNKB33OIyzZU96/nJCWpG0Q1vQyxdcXM75Xg7Mzc0NwimjUMk2eM1Kms0111wzaONDfn1iQBjV2ts0Gc9O2LbjyiVYSMttY/V0H97vxM6PtGNpgzrHsq9iKMZp6guFZxCjebKsCMD99zeuGp5F8AXaoHlOuh/5YlgN/cknn5zJgpr2OUTj173L9+jYY48dHJOMqk1UGsRD8iL/J2iYAbEakq1ozXnooYeGrm39pnyIr56XDY2Wz6Ce4Zo1a4CYPdEYxXZEyTx1r4cccsjQtaFJyaH78OkdoHmfdD9iHy3TpHVH96Mwanstz6Lqmdg1Kyp34eH9HzfVzyrT4icSiUQikegklp1JmZ+fD5O6aNenXaB229Y34TWveQ0Af/7nfz6VsUyirfs2kWY5LbRFCXmWpS11d9cgW/LLX/5yANauXTs4Jnun/FUiDX4WtUro3cP8/PxAk7YajbfX6ndkz5ZcKLJE6fGh0bDaWA5dX3Maef378/Q+2mitcWynhfpWVIa0L/sev/jFLwbg8ssvB0Y1QBjVgKW5Wc16WgyK0PZueV+p73//+8AwS3LaaacBcNlllwGj5Smg0WB9Ukfrj/OMZzxj6qUMlgttiQN1z4cddhgAL3zhCwfHfBRktBZ6eZMs2JTu0vrlA6VoKr07tr2PKJRfDDQ+IEpkJvmzYxCTI0boH/7hH0bGrGtZ30qI3z3dsxLbWSuC1km9F5pLyxBpPnwJFWuB8IUFIxn1pUnUj5V1HdP5YhhtCv5pMfuz+SYkEolEIpHY4pGblEQikUgkEp3Espt7bKKiKGGXN/tYevcTn/jEko6tzaFwocc2BT7J0ELNSV11OlWFzE9+shfFaGl6mSs0Zs1BFMo8a5ifn2fHHXccCR+E0WrBPvEdNHTvEUccATQmsRNPPHHQ5stf/vLQ+VFl4nEUeiRf+iwy6fjzo2rmghwXI0feK664Yui+ZDqxEH0s+dB9WbPRQhzNJ4GvXmyvpXnQMTlLWnr761//OtA4b0b1ZxSyqfuS461d56JaMrOCNtOszAUnnXQSMJysUjLgw2+tbPn1MXJM9kncNJ4o27mv72OTCfqEfnJ4te+Anu9RRx0FwNFHHw3Ad77znUEbmWd8v/a7z1fzljOrHbOvyRV9R/gkbtH3rOZTTsK6tjUhe1OvTLb2XnbdddehzyTzSsJn4d07FuoykUxKIpFIJBKJTmJZmZRaK+vXrw9Do7SLlSOQdse2/knk5LPY8djfC8WmaHCTMDNt501jDMsNaaTakVsmRc5n+kzVZW2Sos2RInwamJubY4cddhg4q0UJ6nylY6tRSwOSdqLEVNLibXtflTpyMG0LC/aOmpFG7MOddT9Wu/Sho3q+llXQteSU6NOdw2gyNzFOlmmKWKPFIEok6KF79enSYbSCr5yHbSX32267DWAkWZuch6Gn1bY50XcV8/PzYxMHQjM/L3vZy4C4arBf461TrPqUPEfPXXKjEipiSeyao+cjJkXnWKZALI+vXmz70Xv5ohe9CIB3vetdQJOaH5oSLgp31veZHbvCiMVOyLHcyoh3do9YxHFpBOwcCmIENR577/491/d0xGqpbzEzEZPi16goSWIbkklJJBKJRCLRSSwrk1JKYdWqVYPdn93h6TNpSlGIlXbFi0lZP25c9rft2yfUatu5+v4mHaMPDRVsv94WOUvQs5SN1T53a9OHxu8iKhswa1i3bh2PPPJIWLDO+y1I27YJk6TB6LfKQqioIIxPVW8xLuV9Wxv/uf1bz0zav70v72OjsUfP88EHHwQaBiVKBS+2RVqcbRMVj1sM/BxGqd31LF/ykpcAjU8QNM9Q9n3JstVANf7jj+8lc/3mN78JDLMKTz311MyG3QsRwyv5ff7znw8MM1Zi0tv88tTefw/Y9cQnZovCYH3ous63a5FPLic/Ect46d2VnCjFgmQDmvdZsiFW1SZ80/n6TAyPCm/a8/x3X5vsR+kIdF96L9WfTWSn91JyHCW782u5TzI37vr+/2RSEolEIpFIzCyWnUmZm5sLSz9rJ61drjRNu+OU7U472GkzKpNgU1mSSdr6KAmrTWlevO+B7ber0T3eFmm1EcmC1wysttO1+5kUGzZs4PHHHx/4ktgU6poTH6EQ2aqltShixiad0nxpHqMkiOOiYKzs+KRyEXOnv6Xt6pptJdjbWEpfRNRGtSj6RZ/p/ygB5LTe/7aEeD66SBFK0X3Jr0qaqDRTe75nUGwRuJ/97GczyR7aZxNpyMcc0ysRFMmo1j6/XkbRZTovYg8jxhuG1xxdS/4T8j+x66/3y9Dzsc9J30OKXtQxGyWk6yqpnHxBIjmWjEleLLvmS0hECRl9scooQs/PSxTZpL4lv5pTFWS0n0Vr+sawUNlOJiWRSCQSiUQnkZuURCKRSCQSncTE5p5SyjxwHXB/rfXMUsr+wAXAs4Hrgd+otY7GlBnUWnn66acHlJelfUSdiV6TmceGJS5nWJ6nG31IpB3PQpJKtbXxlTctdC3vCGb766pZxFODou4t9t13X6BxFtvcjrPTkHfo3YcSVekeoXmOCgEqMMjBAAAgAElEQVSUScfKuBzVNBdvfOMbgaY2DDSU7rhkTzBKi08S/q5r2ufgTY1R4r1xJkdLJ/tKsOrHmsNEwYtyjuR92lW/vcnR0u2ekpdDr8JG7f2Irtc92PlRYICerZwsL7rooqFrLee7PC1Zh3YH7oMOOgho5tWGG3u58TVh7GcyefjwfQs5qmq+rWuBrq+ka4ceeijQOMfaceh5q/6NTZthTT/QmDxsnR6ZU3z17Chpozf3W4dgyZbaaL6syUzX0hg1L3aeNQ8aq9biyLlW76nux65fMjn7WkKTrNVLae55C7DW/P9+4IO11oOAR4E3LejKiUS3kfKeWClIWU90FhMxKaWUvYHXAP8N+P3S22a+Anh9v8n5wLuBj22sr7m5uTB0d1yor03mpvO0m4ySAY2rZBo5V7U5mo7TPu2u3V8rSvvrUwJHGuov//IvA3DfffcBjbOgDW/0ibj8fI27/mLg2SO7I9fca1w+PBVGUy9HGo/69AxKpJ0vF6Yl73IU170ooRMMO79Co9moAirAXXfdBcA+++wDwFVXXQU0CcFg9H2RZmU1R2lhnqGL5MR/1sZetoU7+zBe+x6PqyxuxycGxYc2+mqyS4G290fjEfNrn6kcpAXNu9Wi3/Oe9wBNJXdVBPdh3MvFpExzbYf4/dW9yBE8KtOgzyQDWl9sIjyxGXoGYgGisgy6puberl0a21e/+lUA/vZv/xYYrsqsPuWsrrHbd0/rtN5drX3HHXfcoI3YECX203js+n/PPfcATWkAvSuWfdQ9+3XWypYcW2V9UPizZX8EHdO1VZkaRhNrHnjggcDwM5XTsa6vStByKLf36Ndv+yymGYL8IeAPAY3y2cBjtVa9WfcBe0UnllLOLaVcV0q5LqqfkEh0EFORd/vFnEh0FFOR9aUfZmKlYqNMSinlTODhWuv1pZRTFnqBWut5wHkAe+65Z621homjtOvSDtYn+YJmt61dtmcp7GeCjlnN0tvq1F+kffpdYMSSeNt6FDbn0z1r5wmwZs0aoLFxajwHH3zwoI00S1+Qz86Tt1cuFj50ONJ8fIpqu7PXTlyMgH/G0GgjsvH7ufTXXWpMW96feuqpgUZkbdjW/wIazfyWW24ZfKb5kjZ5+eWXA8PP3BcE1LxFfk3ThmQgSoKlz6LU3D78WojCeX26ASsXYo2mxTp4FsDOocbztre9DYA//uM/BmCXXXYZtJFW+v+3d+bBllVVmv+tTMrKUiyRlqIADYZqEYEEhRJECqFIJUSRISRS0bazuzC0Q0OlLKORcGzbVjokbKW1GEQLFBqsSkEGCYokHQIVIZkVEE2mEAuHrtKyWkWG3P3HPd89666378378t333rn51hfx4t1hn3P22Xudfff61qTjVHBO8wat74lKG0h79lrz448/viDs4SRl3cwK1OVOz7vuUe9r67b+a13wadb1nfwgtL54ZUDXECut9PhebsRQK3RY7KXmD1rGROv0Aw88AAyyCZK/a6+9FmiZHi/ruo/rr78eaBkVf+/qh/xUxJr4PotB1LqhtcT7bMYU9fKx8TIqudIYql8+Lb6YFyWn0z2LVYJ2XGOo9urVq/ttrrvuOmAmKzpbsmIcc8+hwLFm9kpgBfDHwKeA7cxsm2bH/WzgJyPOkUhMC1LeE0sFKeuJzmOzm5RSymnAaQDNbvvdpZQ3mNk/ACfS8wJfA1w+9CQOZjZWifhawbVYGj6mN9b5/Xc1diG2iUWkYGa5arEbfgc8LAFZrejYqCR1UaPUjt7v7JVKOjIpky666DFOmv5YHtzPifofI0/8rl3aQ0ygtVhpwSct78uXL+/fi9eWZed91ateBcAHP/hBYFAWdJy0bY2b97JfuXIlAFdeeeXAdb0detIMW7SLe+05albSnhTpArDHHnsAcPjhhwMtK+H7NyxawGthGs9JMW0xYsIzfrrHq666CmijcvxzLA1WWvf69euBQU1WxecUFaT/P/zhD2f0Y74xaVmHenHGGA02yhdQcym5ESMCsPPOOwPtcyD2tSZ/YrH07CiZGrTRcfILO+mkk4DBtUufRV8osQLQ+hOp/IH8PLyMinHQuOi59OOkfkgWaj6AKikgdl199VFC8o8S+6QoM58kUWyLEuupmOG6dev6bRTtpPIbNeuGfHR0Pq3xq1at6rcRQ6Qxi1FZ42IunPCp9BytNtKzY35uDudKJLqOlPfEUkHKeqIzmJUaXkr5BvCN5vX9wEGT71Ii0Q2kvCeWClLWE13FgtbugR59NsoxTVRZdKSCluKKYYCipwA2btwIzDTT1Bxe1Y9aWLDaqD+is7xjaKyVoO881a7j1J8jjzwSGKxwqfOIkpRzlU8UJboxhkTX6q9MOrlV7X00Y+keDjnkkH6bW265BWipTR3vK1uLItU41UK9J1XldjFQSunPizcNSFYuuugiAE455RQA1q5d228j+dbYyIF2zz337Lf57ne/O9BG8+FradSegbkgOqPXKtVqzuTUeMwxx/Tb6L4uvfRSAI477jigNaX4a0QzYM0Bd1KIzt+1yrlyqNQz6s00osX1nRw7TzzxxH6b973vfUB7XzJZ1Bz7pxE1Kj+agGrVq3Wc1oabbroJGAzn1VjpfPrvK4crXP9HP/oR0I6zwoyh/b3QuTVve+21V7+NjpezqMyV3iSk51GmIT3fPiw9mkweeeQRYDB9hlwA1KZWLV4yJZOXHGZlBoLW/Kk1QWPoTa26R5mA9t9/fwDuvPPOfhs9nzJbyjTtnXTVVz3f6qt3Yt5vv/2Adr6VPG+2yLT4iUQikUgkOokFZ1I2bdo0MhGZdr7SZvwuPFZn9Il+BDkgKmlSTG/sr6HdYK0qc3ReUl89SxIZmFq4cdQs5DR4881tagFpxnI00i7bOzzptZiimnPVpDWwyNZ4zTJqRyeccAIAX/nKV/qfxUqdtTBl7cDj/Ne0rGmED7n3TIo0jg996EMA3HrrrUDr0Aat46U0LcmnT4sv7Ukpx6W5eefkSYcj63w1B9OYKv+Nb3wj0DowQuvsp7nXs1BjzIaVp/DXmNT9Redvf15po8ceeywAn/3sZ4FBWZaTpO5Pc/H+97+/30bPv8ZD9+A19Pl0hp9PeCfxWvXsuE769VbzqmdEY+DlRmOt8RVj4RkQrY9ap+XU6pkLObxq3VWYsV8/xVjEsFnvqPqtb30LaJ/dWlkTrdtiUGLSxXhdmBmqDW1qAjlnayz8b6CYDn2n5G7e4VXpIDQeup81a9b024jdFUsjR32Npb9XzZPm0jsWx+M1t94ZOjLyNSSTkkgkEolEopNYlC37qDDTGKbmd5zaIWqnKVukt0lqpyoNVf9rO/sYpuy1tJjITP3wdsKoNcQQaX8/2nnqv09/rnTn0jTki6KdMLSJgob5gvjjJ8U8RLbGz4V2zkpupV2y147UPoYp+9121IJHhSdOI7x26eXiZS97GQCf//zngTZJU63sgkK5lXbdz8Ob3vQmoE0IWAvdjWzEpFBL8hchufAskhKZqc/yI/DPljTiUcURawUO54KYEM8/f+qjriWfH8+kKPQzFrVTuCa02mgsqeGfm+XLl0+t/I+SschU1Yq1ai1XWK4YCGjnQP55tTDliy++GGjXS6Vs8P4Q++67LzDTj8snW/QMDsDHP/5xoGXHoGVDxVRo3fasgGQh3ruf35iiIf5WeOg8ui8xI9CuL/KF0n9/Hh2n84h98WU6NM4xxN8zMgpvjiHW3hdO96rfuqOPPhpo1zwYb01KJiWRSCQSiUQnsajRPaOgXVhMFw0z7bheAzvjjDMAeNe73gW09jC/247ptGua5rCU936XHLWdyLrATEZGEQ3yoIaZO2Zp1V6T+/a3vz3Qj1GJkCYd3SP7pWcCYgGvCy+8cKAttLt17cA1l7U2+q/vvIwsdOn6SaGUwuOPP96fM884iEWI5QA+8pGP9Nso2kUaWmRLAC644AKg1dZrWup8R0fFuYK2WJtYIO/1L98rPbdiTXyBPkVg6Luo9XpMSjbUd9n9FVEBrYaoonTyAfIautrLD0e2ff98x3WlVoRtodLiTxrDIvJ0L5rv2nypjRLfKarGlwZRxI38raTFe58fyYvWTqV99xq+2BrJodgE78elflxyySVAWzjPy7qO01zqvJ5x0JonVkP35WVCfdO5a0U0tfaKmdExPuJGxylyVP/FXELrE6XfH/X1/PPP77dROnxF9wiebZGPjsZM9+MjiXRuPft6pr2vpWfVhyGZlEQikUgkEp1EblISiUQikUh0Egtu7lm2bFmfBqrVxogmC1/3wjtRAVUaXTTWRz/6UaClC2uOSvFatcRo0bzi2yjM+YorrgDgtttuAwbDwpQIR9TbwQcfDAzWSoi0oULranWCRlWArlHHc0F0avVUp+7jwx/+8MA1a2HlMgnFpHf+s+gw6+niJ554YirpbzMbuA//WnOskGNR2XL0htYxUCG6GgOFR0Lr7KckY7Xw/prszgXx2fByofkUHSx6W4mdoA2hVn9qlWpFA8fQ9PmsgqxriFL3z5b6qJowSrzoZVnze9lllwGt+cqHbkbzcS1kd5qTFwp+XCSLMknKBFILQhAUVuxTNUimZML/8pe/DAyOl8wPqjyttd47bmst/sIXvgC0ppOPfexj/TYyX6hqdTSzQCujsY6ND+R4/vOfD7SmGJluZeaNfYN2fPwzLJOJrl+rJKzrayz1WyFnWWifFSXdlMnLX0vjI5mU6cybljTmGifJdc2MpfGQzKs6s/+uVvNJSCYlkUgkEolEJ7Eoydx8uF1E1PoU1gftDlO7tZqGGJPlSEP1Ib8KnxLrEp1b/WvtTnXtd77znf02uq52udopeidBXUNhXdKqVH0S2oqqYiXe+973DtwDtA6VOo92uzWNWRiVJj86C9e0t5gsy5/nO9/5ztDjYn+i06N3foznjonfhvV/mlCbB72W46Uc63wa8G9+85szjoNBRlGvX/ziFwOt5um1FT0vepZiOQh/jejQ6Z2cxXxG7V+VnGGms56YTO+4ruOkLcuhzmupYob03B1//PHAYLXnYQ7wNQyrjg4zK67XEiUq1bg0Y6XD96yWtGSNmVKN19i0WD7Az/E0soZCLCcC7TzLmVpz4B1ExT5HWfWOmBpXJdITvva1r/Vf+5T00I6vZ230zChAQdC6C628qbRHrZJ4ZBPECviQc81zDFeuJe/T2NXSCIiZElNUW5Nj+ZFYrRza51C/i6paLIdwaJkdzVuNNRSbJYZJffa/17KC6F71O+CfmXFS5SeTkkgkEolEopMYi0kxsweBfwOeBJ4opfy5mW0PfAnYDXgQWF1K+eWwc3jUQn6jthgTpHkoRFA711qhwnicNDOYmXZax/uQX9kMZfOXXe8DH/hAv41sdNpJy4dARZugTZ0s7Uyhi3fddVe/je5dSYZOP/10oA0FA1i9evXAcZF5gHbnq1Cxl770pUDrO+PbR3+RWtic2qjvfkyHJdLy/YnjM07a/poWudBMyqTlvTZXgsbmRS96ETBYZE9yqTF59atfDdRLD+hZkKblx1phh2IQpRXWwnnjvHrtKWpoSnv91a9+dUafpSHtvffewGCBwRtvvBFoU32/7nWvA9pEXAArV64EWk26lihRrIbYSbGWo9YV3Z8PN9U5Dz30UKD1Z/Ap0NUPMYgaH1/cVOGuGtcjjjhi4HN/3einNenSBbPBJOR92bJlPPWpT+3PgZ8n+V3p3jUH3ndPcygW4pprrgEGC+idffbZQLuuiGmspbRQmKvYBc/sSCZ8oVMYLLKn8NuYEM2fR3Om9VJMgW8jFiKyHL7POi4Wsa2xNqPSx8f7G8XIqV/RRwVaPzL9JkSm0R8XmXQvxxqH2B+/poyD2TwZf1lKeUEpRXz0e4D1pZTnAuub94nE1oKU98RSQsp7opOYi0/KccARzesLgG8Ap27uoHFtr7XdoHZ0spnJBuztYHGHF7VRfx7tZrWDrSVdkvap3bvfAWunKFu6UjHLjun7o+NlB/XMxUEHHQTAOeecA7SahrcTqr3SqdeinzQOYn3k6+J3yb5v/h7ETkGr4US/l1rp+mhT920igzKKJRlVSK4j2CJ5h9HJAqVVKELMaybSvpQkTIyFL6gmX5QvfvGLA8f7CAOxebLLy7av5wfaSIWo2fv+SAaj176H5Ejn0/OjZITQRvpIY5OG7JmLww47DGiTaamw3z777NNvo3PKT0vn9X40kr077rhj4P485L+jFON6Hjds2NBvo77GJIZe+5b/jVhbPet+3mO0YK2URUdkf1byXkoZGHePww8/HJjp4+Z9UrR2ih1R8jS/TmoONIdiXzwzLgZHn0WWA9p1KbIa3pdQsi15jqxC7fhaMk+dM/bD+8gIcS3014pyO1cZ0W+o5sCvKZJJlQCo+RmpbIDuJ467779++2K0kL/WKJZ9XCalANea2S1m9ubmsx1LKfLg+ymwY/3QRGLqkPKeWEpIeU90FuMyKX9RSvmJmf0JsM7MfuC/LKUUM6vSIo3QvxkGtfVEosNIeU8sJWyRvHtZTyTmC2NtUkopP2n+/9zMLgMOAn5mZjuVUh4xs52Anw859lzgXICdd955QNBrIZnxfc1EEMOdPFUqU4Xow1HH6xqi8mrOTKK2dR5fz0N0Y6xy6+sN6Tyi1SJdDG0Soeiw6q8lhzQ5G6pfniKPDmFnnXUWMFgfQVSbqFnRbd6RUFRerH5cc3hSnzXe48xpDZNOODYXTEred9lll7J8+fIZ5kUYbuaqmQYEJQZU+Cu0IZcyWUhm5BgHrTyIrhXV7OdTfZQjqPrqE0HJnCETo8yBJ598cr+NzE7aoMkBXTQ+tE7g6o/6KqdygPPOO2+gX9/73veAwfBrORuLqtbxV199db+N5FqUs54jP7YaQ60dco71Ydyix+N9eSd5ObVrDmU+8iYzjWt0Rl/MBG5bKu9e1s2sPPbYY/1x9hWFZaKTzEtufJI7yaLqHcmB1q9LSo4nx2bJta+DpvVN5hH1p1Z3LJqjfZ/lMCsHWh3j1/ZYh0nva0lKY3ixdzDV+hpr09WqRM/VwToGTsiEJgd3mGmK0jE+ZFvmMDk2a+x8+HV0LNZvzmyVt83esZk9zcyertfAUcD3gSuANU2zNcDls7pyItFBpLwnlhJS3hNdxzhMyo7AZc1uahvg/5RSrjGzDcDfm9nJwEPA6nEuOExTHkeDriX6gkGnKO3w1EY7PGn6MLswLjEV2h175yp9JiZGO8VaZcphybIAXvOa1wCt86Q0Ve+oJI1Cn+lavqKkvlOftav1u+/oABiTS/nPYpVpv8OOTpMxcZs/Z815WYifjUo8t0CYmLxv2rSJRx99tK8l1hIvxSrQXraj86rGwVcLlnzJQVXhxnImhZZ5iQnavGYkluT1r3/9wLXkwAgtcym2Rs/UJz7xiX4baWTSRMWA+P4obbyq18ph3Cfi0lhJC5eDqpJIQesErpDmt7zlLcCgM7meqaiBygEd2nBXsZO6v7e+9a39Np/+9KeBllnSWCrJG7Taaa3shxAT+9Wqq0cGbZ4x0fVd93zkkUf2P9MapfVp/fr1M47TuIhVE0vm10nJsZhhHePXJY29PotOsr6PGmcxMd7xV+utQs91nhorpuO09nnHUMmd+qx++PVW11LfJRu1RJ3jsNOz+S1V330ixVjOQf/986nj9FxL9v19aXzVVv/9czFOXzf7NJRS7gf2r3z+z8CqzV4hkZgipLwnlhJS3hNdx4Knxd8cxtGshWgThJn+JtoB+912DMHUDtYXeoqFwGJhP5jJ6Ehj9qF1up94Pm9rVaEs7UZls/VhWdqly56n4z2joWvFolpeM4taec0eKzujEnKp7972q/GNdlSvjdTSO9fe+/NtTVCCq5jICWaGbtd8E2JpCMmyDykXiyC5fOihh4BB5kLXFwsh+fIhyBs3bgTa8gtiVhSGCG2RPbEH8l3y9+VDcqFlNcT0QCsjSnImufLPjbRvXV+a+XXXXddvE0tNrF27FmiTIsLMVAR6NlTk0LeXpq7SBGeeeWa/jdaP6PelcGVoGYJYBG7U8zcq1cK0Yfny5f059KUS4rqmcPADDjig30Z+QDFs1cuT5ieWLfC+Vbq+5kuyXyvFIfgw5/iZnhk9H15GI+Oleffsdny+Bb9ORsa5liht2Po4Wz+/6PsmVsP/Pkq25QOnZ9dbEcQW6V41B/6+NId6DmrlJjRm/rclItPiJxKJRCKR6CQWhUkZZUcbtTMcVhTP7xS1K42RKb6NtCn5Z9R2eGqvlM4q3ObtjWIqpC3KZlezReuzWnpv9TEW4quxP/I3UT+8FhAT49Q8weVprR2stHTv/xKjFGq+QNG2rp10LQFR7Me4Cf2mHZs2beK3v/1tX668ZhR9k6K81j6TD8i1117bb+MjYqD1MxHLATMTUok58KUZ1B8V/5Jc+LmShiVGR/Z6HwEkSD5rNnjdlxgLsRpeFqKcy7fl4IMP7reJTI7G0kcSKQnc5Zf3/D6lGfu5EGOofkUmEtooHmmV0qi9f4X6EW3vNU1W4ypG1D/r4/jMdRFPPvlkPzrMJ93T2qIkd/KV836CKnindUSytm7dun4bjZ3mSZq6Z6U1d/pM651fgyS/GudaCQhdQ/4ZWtv9GhijVgS/Jg9bA/179XnUWjisWOw4v5e19lE2FTUKrU+W1gIxrt6HTf2PY+mZJj27sVSC91uU3CeTkkgkEolEYuqQm5REIpFIJBKdxKKYe2YTIlU7Lobz+rbRWTMm06kdJ/rJmyr03e233w609LCnKKNjYzTX+PPEhF4+6Y0oL5mf5IxUc9IVdap+eOpMJpzoMOvpSNFzcoKqVTOOtShq5qPo3FVzLB7mJLhUsGzZMlasWDGDVvaIDsjjmAE9RJOLltbc+7EWBStHRZlDvOzICbVWp0mIZhFR+94sctRRRwFtwi1R8v58kqfzzz8faMfFV7yVKUdUs0xKPjGhnjuZFkRPexOBHB71jOk+vUkomirlGOznS3R/DB32ZqxhzrA186aupX51sHbPFuHlL385MFhhWGuVwosVJi+nb2jXPtVf0pz4ZJUyo4wyMyoAQOukT74mRPNONBFBmzRQz1XNLK71VmYQyaY398SaP7Xw8ignNTeGYW1rGMcEpN8Y/Q7450EmZFXx3mWXXYBBk5CeeSW70zh7s42eNX2m37zab80oJJOSSCQSiUSik+hcCLIwim2JjnK13Vh0UPVsQo05gTrbEpmGGlMQ0xiPEzbtHYxiwrdRKeaj8/CoULbIJnlEja6Wjj1q915rHObANcopdmt2kq2hlMKTTz5ZlQfNiWSmVg10nHkUFIYrbcWHC0qWxW7oPF52pBnFVOP+mscccwzQOu4q3PkVr3hFv81VV10FwMqVK4HW4bXGwqlfuj+fyl/t77nnHqAdH8/aSHuTQ6Y0a2nj0GqMOo+YJ+84qzZRM/chskocp7Ujht77c44j95Gl3FqgQAPPJkgmNQdiHrxmrjk48MADgZbBro2P2JUaK+Er2cMg8x0R09F76Nw33HAD0Dp5e4d0hdDHhIz+mrEC8CjmYJw2cQ0YJ0Gmh549MXhaE/wY6JkVc/qSl7wEaKtZQ8tWRmbeIzq/6748Y1UrtRKRTEoikUgkEolOorNMyigMK+wEM1MKaxeoZEEwc+dc27nGgl81LUm7/EnZkEcleBrWpsa2jKOdRS2kFjqs0GqNoezGABs2bBhoW0vvPcq2mhgfks8aoxJDfGUzryUCjHLhU2HHMEr5DYilALjyyiuBNkRR51V4r/9MslLzp1H/1UbaptfGos+GWBOfdFAaq86tNtIA/Xn0bMjXwMtk9OPRePtEYsNkueZrM9cicNOIFStWsMcee/S1Zu9bJW1bjIpkzcujXmt+NLc1X524ztXWl0kVbLzvvvuA9lnxDHhk1+NzCi1rMCmZqBUiHdZm2HsYZIRg0D9N93jrrbcC7X3tueee/TbyW1GhzdoaIzZNjErNLyeZlEQikUgkElOLqWRSoh2/lixJ30U7vP8uFtfzu/bXvva1QOuxLW1AO0doU3ZPatc+28Q88Ri91o5X0Rdei5XdXREMMX00tFqQ2l599dVAXauJrJbfJY/juZ3YPKLvU41JiT5GHlHL0Xm8/V4ajeRbLIc/n9oooVlMROfPreMjKwctc6H7kMZVSwMe05Pff//9M64VfVoU/QGtDEeWw2v6sbBbjZGMPiQ1JlPjsLX5mYyDRx99lLvvvrtfVsFH92ie5GciRsWvpVp/FPGjddczF8Ko8Z00eytGR+ycn28xQjExo29TKyg7F4xzX+O00bNcS2QXfcXEKPrSFsOilvzciEGJ0Y0+sjUyOjUkk5JIJBKJRKKTyE1KIpFIJBKJTmIsc4+ZbQecB+wLFOCvgHuBLwG7AQ8Cq0spvxxyinlBraZMpL9rNWUE0XWxngHAxRdfDMys5+FD62I9nrlilMPsMNTaKoGVnB49Ha++alxqlVpjsrsYClvrc3Qe86+nzZGwa/I+19DEWL+qluRPzrCaz4cffnigrb/+qPDZHXbYAWhDSmWeUf0gaCn0eF+eBpZJSMm0JKeeSpeTphxudT/ejBCTr+la3gFX7eN9eQo8PifjJHObFkxK3pcvX96vcDxqTYzmemjHTmHtWwrNYS2seC7woe8Ruldd099XNLHOFZMyY8XKz7XaWrEyuxLa+e9GQWkMYls5ysNkk7l9CrimlLIXsD9wD/AeYH0p5bnA+uZ9IrE1IOU9sZSQ8p7oLDbLpJjZM4CXAv8JoJTyGPCYmR0HHNE0uwD4BnDqfHSy0ieavgy8969jlcaaU96wZGzQsiT6rJaSfDEdQ0ftqKOTYK2fMeV6zRkzOsWOk7hq2liTiC7K+2ySgwn+mRimVfo2cmCLrFmNpYzX9OeRo6q0Lsmiks3580R249e//vWMvslZLx4DrXar+xPzUStLEZ91z2JCg1cAAAv1SURBVLZEzVHH+BTo0dFwawmrn6S8e43Zp6PXfOh7P64j+gXU00uMCj2e9JqswAKfgCz2Z1LOrF1BHF89X7XQ4WiNqK0XkVmc7RyN84uyO/AL4O/M7DYzO8/MngbsWEp5pGnzU2DH2sFm9mYzu9nMbh5HOBOJRUbKe2IpYYvl3cv6AvY3scQwjk/KNsABwNtLKTea2acI1F8ppZhZdatYSjkXOBdg5513nsh2cpTtV7tA7d61E/a7/GHp9Gs7vKih1grATTpRzzgYVYBR7IjupxZKGY/3bXSeGFZc02oEta2FMk+TFkEH5T1qlX4eor13VMI3oVbMUPMnW3Vt7oYV1/PXin2MbJxH9H2q2fLjs15LABZZDp+YStcYVubCv47pCzxi2YJaIscpDUHeYnn3sh6/9/Md50nsdk0zl3/RqPVtIdeTUb4tMYHlqDQAC4lxfKLi8+2fh2H993Man+dxWK1o3RgX4/y6Pgw8XEpRycq19IT6Z2a2E0Dz/+dDjk8kpgkp74mlhJT3RKexWSallPJTM/uxmT2vlHIvsAq4u/lbA5ze/L98xGkmilGRDFGDq+0Uh2lOXoOKu+Paebqa9j3ucms+O0KNlRrmy1IrCaC20ir8GE5jEbUuyvsoGRyWzK3GBsQEZKN8N2KBTv/ZqHIQtVIVvn+172qFOWNfayxnLHypfnkmZdg1fX907siE+GNidE/tGZk0s7oQmJS8L1u2jG233bbvV1RjIKJfh18XYoG6saI+KqzwpNficaKUur7O1Z7TGN1Tg/yKaj5a8dyjxl3PTO1ZrhVWnXH8Znvaw9uBi8zsKcD9wH+mx8L8vZmdDDwErB7zXIlE15HynlhKSHlPdBZjbVJKKbcDf175atVku5NILD5S3hNLCSnviS5jqmv3DHMC9W1qjoSRqq0590VT0DghmXPFliRzq2FU8rXZhMsNGyeY6Xxco+u6ZgabVkS5qDmzxvnwz0R8FkbJWTR51Gj7aIo54IAD+t+pXscDDzww0MbXchG1v/322wOt06TeQytru+66K9CGJ6sWF8x0htW1Rjk71pyGoxmrZsrx7aG+rsTvlhI2bdo0EEKugAUY7lhaG6dR660wqsbSfKFmlphNtfma4/h8YdRzHn8rNU/e/KP2oxxc429MrZZVLbXHsPOMGsvpMZ4mEolEIpFYUrCF3PWb2S+A3wD/d3NtO4ZnkX1eCIzq866llB0WsjNzRcr7gmLa+ry5/k6VvDey/hBb3zx0EVtjn4fK+4JuUgDM7OZSSs3+2VlknxcG09jnzWEa7yn7PP+Ytv6Oi2m7r2nrLyy9Pqe5J5FIJBKJRCeRm5REIpFIJBKdxGJsUs5dhGvOFdnnhcE09nlzmMZ7yj7PP6atv+Ni2u5r2voLS6zPC+6TkkgkEolEIjEO0tyTSCQSiUSik1iwTYqZvcLM7jWzjWb2ns0fsfAws+eY2dfN7G4zu8vM3tl8vr2ZrTOzHzX/n7nYfY0ws+VNqfWrmve7m9mNzXh/qUl53RmY2XZmttbMfmBm95jZIdMwzuMi5X1+kfLeLaS8zy+WsrwvyCbFzJYDnwGOBvYGTjKzvRfi2rPEE8DflFL2Bl4MvK3p53uA9aWU5wLrCaXMO4J3Ave49/8T+F+llH8P/BI4eVF6NRyfAq4ppewF7E+v79MwzptFyvuCIOW9I0h5XxAsXXkvpcz7H3AI8I/u/WnAaQtx7Tn2+3Lg5cC9wE7NZzsB9y5230I/n91M+pHAVYDRS5yzTW38F/sPeAbwAI1PlPu80+M8i/tLeZ/ffqa8d+gv5X3e+7mk5X2hzD27AD927x9uPusszGw34IXAjcCOpZRHmq9+Cuy4SN0ahk8C/xVQkYR/B/yqlKKCEV0b792BXwB/11CY55nZ0+j+OI+LlPf5Rcp7t5DyPr9Y0vKejrMVmNm2wJeBU0opv/bfld42sDMhUWZ2DPDzUsoti92XWWAb4ADgrFLKC+mljh+g/ro2zlszUt7nHSnvHULK+7xjovK+UJuUnwDPce+f3XzWOZjZH9AT4ItKKZc2H//MzHZqvt8J+Pli9a+CQ4FjzexB4BJ6lOCngO3MTFWuuzbeDwMPl1JubN6vpSfUXR7n2SDlff6Q8t49pLzPH5a8vC/UJmUD8NzGI/kpwOuAKxbo2mPDzAz4HHBPKeUT7qsrgDXN6zX0bJmdQCnltFLKs0spu9Eb16+VUt4AfB04sWnWtT7/FPixmT2v+WgVcDcdHudZIuV9npDy3kmkvM8TUt5ZGMfZxlHmlcAPgfuA9y62c8+QPv4FPQrqTuD25u+V9GyA64EfAdcB2y92X4f0/wjgqub1HsBNwEbgH4A/XOz+hb6+ALi5GeuvAM+clnEe8/5S3ue//ynvHflLeV+Q/i9Jec+Ms4lEIpFIJDqJdJxNJBKJRCLRSeQmJZFIJBKJRCeRm5REIpFIJBKdRG5SEolEIpFIdBK5SUkkEolEItFJ5CZlDjCzPzWzS8zsPjO7xcyuNrM3q1LlHM99hJm9JHz2H83s+2b2vSbd8LvN7DNmdntT2fN3zevbzezEYedOJLYEKe+JrRVm9mQjR3eY2a1RFufhesf7Ioxmdr6Z/dbMnu4++6SZFTN7Vujj983sSjPbrvl8NzP7/nz2dzGRm5QtRJMY6DLgG6WUPyulHEivsNak6j4cAfQfFDM7GjgFOKqUspJeFc9/LaW8rZTyAnrx/veVUl7Q/K2dUD8SiZT3xNaO3zVytD89uf5YbOAyvE4Cx9OrGO2xETiuudYyetllfSZZ9XFf4F+At02wP51FblK2HH8JPF5KOVsflFLuAK4HtjWztWb2AzO7qFngMbMDzeybjRb6jy5F8DsazfDORlPdDfgvwF83O+fD6D047y6l/FNzrd+XUj67oHecWMpIeU8sFfwx8EvoM3zXm9kV9LKmYmb/wcxuamT1HDNb3nx+lpndbGZ3mdl/08nM7HQn72c0LM2xwMebc/xZ0/QS4LXN6yOAbwMqIhhxA90qKjhvmOTOcKlhX2BY0acXAvsA/0RP0A41sxuB/w0cV0r5hZm9FvgfwF/RK760eynl92a2XSnlV2Z2NvD/SilnAJjZqOslEvONlPfE1ow/MrPbgRXATvRYDOEAYN9SygNm9nx6G4lDSymPm9nfAm8AvkAv0+6/NJuW9Wa2Hz0m5ARgr1JKcfJ+Bb3ssWsBmn39D+nV6XkmcBJwIXB07Ghz/lX0Uvxv9chNyvzgplLKwwCN4O8G/IreQr+uEcjlgMpW3wlcZGZfoZdCOJGYJqS8J6Ydv2vMiJjZIcAXmo0y9OT7geb1KuBAYEMj139EWyhvtZm9md7v6k70zDl3A48Cn2t8tzbnv3UpvRo9BwNvCd9pI7ULcA+wbktudNqQ5p4tx130hLWG37vXT9ITWgPucjb0laWUo5o2rwI+Q2/HvmGI7XPU9RKJ+UbKe2JJoJRyA/AsYIfmo9+4rw24wMn180opHzKz3YF3A6tKKfsBXwVWlFKeAA6iVwn4GOCazVz+S8B/B9aVUjaF77SR2rXpR/qkJEbia8AfNjtnABp677Ah7e8Fdmh26ZjZH5jZPo2D1HNKKV8HTgWeAWwL/BvwdHf8x+jZMP+0Of4pZvamSd9UIjEEKe+JJQEz24se8/fPla/XAyea2Z80bbc3s13p+bH8BvhXM9uRxkxjZtsCzyilXA38NbB/c54o7wCUUh4C3gv87bD+lVJ+C7wD+JsJO/N2Elv9Dc4XGvviCcAnzexUepTegwyhr0spj1kvTPJMM3sGvbH/JD075IXNZwac2dgsrwTWmtlxwNtLKVc3wn9d45hYgM/P820mEkDKe2Krh0wp0JPLNaWUJxuTTh+llLvN7H3Atc2G+3HgbaWU75rZbcAPgB/T882C3kbkcjNb0Zz3Xc3nlwCfNbN3ACeGa5yzuc6WUm4zszvp+a5cP/vbnR5kFeREIpFIJBKdRJp7EolEIpFIdBK5SUkkEolEItFJ5CYlkUgkEolEJ5GblEQikUgkEp1EblISiUQikUh0ErlJSSQSiUQi0UnkJiWRSCQSiUQnkZuURCKRSCQSncT/ByGYjrlElXGlAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 576x576 with 9 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplots(3, 3, figsize=(8, 8))\n",
    "for i,k in enumerate(np.random.randint(numTotal, size=9)):\n",
    "    im = Image.open(imageFilesList[k])\n",
    "    arr = np.array(im)\n",
    "    plt.subplot(3, 3, i + 1)\n",
    "    plt.xlabel(classNames[imageClass[k]])\n",
    "    plt.imshow(arr, cmap='gray', vmin=0, vmax=255)\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Prepare training, validation and test data lists\n",
    "Randomly select 10% of the dataset as validation and 10% as test."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training count = 47156 Validation count = 5913 Test count = 5885\n"
     ]
    }
   ],
   "source": [
    "validFrac = 0.1\n",
    "testFrac = 0.1\n",
    "trainX = list()\n",
    "trainY = list()\n",
    "valX = list()\n",
    "valY = list()\n",
    "testX = list()\n",
    "testY = list()\n",
    "\n",
    "for i in range(numTotal):\n",
    "    rann = np.random.random()\n",
    "    if rann < validFrac:\n",
    "        valX.append(imageFilesList[i])\n",
    "        valY.append(imageClass[i])\n",
    "    elif rann < testFrac + validFrac:\n",
    "        testX.append(imageFilesList[i])\n",
    "        testY.append(imageClass[i])\n",
    "    else:\n",
    "        trainX.append(imageFilesList[i])\n",
    "        trainY.append(imageClass[i])\n",
    "\n",
    "print(\"Training count =\",len(trainX),\"Validation count =\", len(valX), \"Test count =\",len(testX))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Define MONAI transforms, Dataset and Dataloader to pre-process data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_transforms = Compose([\n",
    "    LoadPNG(),\n",
    "    AddChannel(),\n",
    "    ScaleIntensity(),\n",
    "    RandRotate(degrees=15, prob=0.5),\n",
    "    RandFlip(spatial_axis=0, prob=0.5),\n",
    "    RandZoom(min_zoom=0.9, max_zoom=1.1, prob=0.5),\n",
    "    Resize(spatial_size=(64, 64), mode='constant'),\n",
    "    ToTensor()\n",
    "])\n",
    "\n",
    "val_transforms = Compose([\n",
    "    LoadPNG(),\n",
    "    AddChannel(),\n",
    "    ScaleIntensity(),\n",
    "    ToTensor()\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "class MedNISTDataset(Dataset):\n",
    "\n",
    "    def __init__(self, image_files, labels, transforms):\n",
    "        self.image_files = image_files\n",
    "        self.labels = labels\n",
    "        self.transforms = transforms\n",
    "\n",
    "    def __len__(self):\n",
    "        return len(self.image_files)\n",
    "\n",
    "    def __getitem__(self, index):\n",
    "        return self.transforms(self.image_files[index]), self.labels[index]\n",
    "\n",
    "train_ds = MedNISTDataset(trainX, trainY, train_transforms)\n",
    "train_loader = DataLoader(train_ds, batch_size=300, shuffle=True, num_workers=10)\n",
    "\n",
    "val_ds = MedNISTDataset(valX, valY, val_transforms)\n",
    "val_loader = DataLoader(val_ds, batch_size=300, num_workers=10)\n",
    "\n",
    "test_ds = MedNISTDataset(testX, testY, val_transforms)\n",
    "test_loader = DataLoader(test_ds, batch_size=300, num_workers=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Define network and optimizer\n",
    "1. Set learning rate for how much the model is updated per batch.\n",
    "2. Set total epoch number, as we have shuffle and random transforms, so the training data of every epoch is different.  \n",
    "   And as this is just a get start tutorial, let's just train 4 epochs.  \n",
    "   If train 10 epochs, the model can achieve 100% accuracy on test dataset.\n",
    "3. Use DenseNet from MONAI and move to GPU devide, this DenseNet can support both 2D and 3D classification tasks.\n",
    "4. Use Adam optimizer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device(\"cuda:0\")\n",
    "model = densenet121(\n",
    "    spatial_dims=2,\n",
    "    in_channels=1,\n",
    "    out_channels=numClass\n",
    ").to(device)\n",
    "loss_function = torch.nn.CrossEntropyLoss()\n",
    "optimizer = torch.optim.Adam(model.parameters(), 1e-5)\n",
    "epoch_num = 4\n",
    "val_interval = 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model training\n",
    "Execute a typical PyTorch training that run epoch loop and step loop, and do validation after every epoch.  \n",
    "Will save the model weights to file if got best validation accuracy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "best_metric = -1\n",
    "best_metric_epoch = -1\n",
    "epoch_loss_values = list()\n",
    "metric_values = list()\n",
    "for epoch in range(epoch_num):\n",
    "    print('-' * 10)\n",
    "    print('Epoch {}/{}'.format(epoch + 1, epoch_num))\n",
    "    model.train()\n",
    "    epoch_loss = 0\n",
    "    step = 0\n",
    "    for batch_data in train_loader:\n",
    "        step += 1\n",
    "        inputs, labels = batch_data[0].to(device), batch_data[1].to(device)\n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(inputs)\n",
    "        loss = loss_function(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        epoch_loss += loss.item()\n",
    "        print(\"%d/%d,train_loss:%0.4f\" % (step, len(train_ds) // train_loader.batch_size, loss.item()))\n",
    "        epoch_len = len(train_ds) // train_loader.batch_size\n",
    "    epoch_loss /= step\n",
    "    epoch_loss_values.append(epoch_loss)\n",
    "    print(\"epoch %d average loss:%0.4f\" % (epoch + 1, epoch_loss))\n",
    "\n",
    "    if (epoch + 1) % val_interval == 0:\n",
    "        model.eval()\n",
    "        with torch.no_grad():\n",
    "            y_pred = torch.tensor([], dtype=torch.float32, device=device)\n",
    "            y = torch.tensor([], dtype=torch.long, device=device)\n",
    "            for val_data in val_loader:\n",
    "                val_images, val_labels = val_data[0].to(device), val_data[1].to(device)\n",
    "                y_pred = torch.cat([y_pred, model(val_images)], dim=0)\n",
    "                y = torch.cat([y, val_labels], dim=0)\n",
    "            auc_metric = compute_roc_auc(y_pred, y, to_onehot_y=True, add_softmax=True)\n",
    "            metric_values.append(auc_metric)\n",
    "            acc_value = torch.eq(y_pred.argmax(dim=1), y)\n",
    "            acc_metric = acc_value.sum().item() / len(acc_value)\n",
    "            if auc_metric > best_metric:\n",
    "                best_metric = auc_metric\n",
    "                best_metric_epoch = epoch + 1\n",
    "                torch.save(model.state_dict(), 'best_metric_model.pth')\n",
    "                print('saved new best metric model')\n",
    "            print(\"current epoch %d current AUC: %0.4f current accuracy: %0.4f best AUC: %0.4f at epoch %d\"\n",
    "                  % (epoch + 1, auc_metric, acc_metric, best_metric, best_metric_epoch))\n",
    "print('train completed, best_metric: %0.4f  at epoch: %d' % (best_metric, best_metric_epoch))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plot the loss and metric"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure('train', (12, 6))\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.title(\"Epoch Average Loss\")\n",
    "x = [i + 1 for i in range(len(epoch_loss_values))]\n",
    "y = epoch_loss_values\n",
    "plt.xlabel('epoch')\n",
    "plt.plot(x, y)\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.title(\"Val AUC\")\n",
    "x = [val_interval * (i + 1) for i in range(len(metric_values))]\n",
    "y = metric_values\n",
    "plt.xlabel('epoch')\n",
    "plt.plot(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Evaluate the model on test dataset\n",
    "After training and validation, we already got the best model on validation test.  \n",
    "We need to evaluate the model on test dataset to check whether it's robust and not over-fitting.  \n",
    "We'll use these predictions to generate a classification report."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.load_state_dict(torch.load('best_metric_model.pth'))\n",
    "model.eval()\n",
    "y_true = list()\n",
    "y_pred = list()\n",
    "with torch.no_grad():\n",
    "    for test_data in test_loader:\n",
    "        test_images, test_labels = test_data[0].to(device), test_data[1].to(device)\n",
    "        pred = model(test_images).argmax(dim=1)\n",
    "        for i in range(len(pred)):\n",
    "            y_true.append(test_labels[i].item())\n",
    "            y_pred.append(pred[i].item())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "! pip install -U sklearn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "        Hand     0.9928    0.9959    0.9943       969\n",
      "   AbdomenCT     0.9830    0.9952    0.9891      1046\n",
      "         CXR     0.9979    0.9927    0.9953       961\n",
      "     ChestCT     0.9969    1.0000    0.9985       980\n",
      "   BreastMRI     1.0000    0.9905    0.9952       944\n",
      "      HeadCT     0.9959    0.9909    0.9934       985\n",
      "\n",
      "    accuracy                         0.9942      5885\n",
      "   macro avg     0.9944    0.9942    0.9943      5885\n",
      "weighted avg     0.9943    0.9942    0.9942      5885\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "print(classification_report(y_true, y_pred, target_names=classNames, digits=4))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
